ops-social-planner

GitHub

跨平台社媒排期只读仪表盘,聚合各引擎计划内容并展示本地Web UI。支持Typefully等引擎数据同步与可视化,提供身份隔离视图,严禁发布操作,用于查看队列和日程。

claude-ops/skills/ops-social-planner/SKILL.md Lifecycle-Innovations-Limited/claude-ops

Trigger Scenarios

用户询问社媒排期、内容日历或已计划发布的内容 用户要求显示队列、发布日程或社媒仪表板 用户直接运行 /ops-social-planner 命令

Install

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-social-planner -g -y
More Options

Non-standard path

npx skills add https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-social-planner -g -y

Use without installing

npx skills use Lifecycle-Innovations-Limited/claude-ops@ops-social-planner

指定 Agent (Claude Code)

npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-social-planner -a claude-code -g -y

安装 repo 全部 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --all -g -y

预览 repo 内 skill

npx skills add Lifecycle-Innovations-Limited/claude-ops --list

SKILL.md

Frontmatter
{
    "name": "ops-social-planner",
    "effort": "medium",
    "maxTurns": 25,
    "description": "Visual, engine-agnostic planner for all scheduled social posts and ads across every identity and project. Auto-generates the current state of ops-socials + ops-marketing planned content per project, per channel, regardless of posting engine (Typefully, upload-post, Meta, Google Ads), and serves a clean local web UI. Use when the user says social planner, content calendar, what's scheduled, planned posts, show my queue, posting schedule, social dashboard, or runs \/ops-social-planner. Read-only — never publishes (mutation stays in \/ops-socials + \/ops-marketing behind per-message approval).",
    "allowed-tools": [
        "Bash",
        "Read",
        "Grep",
        "Glob",
        "mcp__typefully__typefully_list_drafts",
        "mcp__typefully__typefully_get_draft",
        "mcp__typefully__typefully_get_queue",
        "mcp__upload-post__list_scheduled",
        "mcp__upload-post__list_profiles"
    ],
    "argument-hint": "[--project <id>] [--collect-only] [--port <n>] [--no-open]"
}

/ops-social-planner — engine-agnostic planned-content viewer

Read-only dashboard of every scheduled post and ad, grouped identity/project → channel → time, regardless of posting engine. Personal/founder identity and project brands stay strictly separated (see /ops-socials identity rules). See SPEC.md for the full design.

What it does

  1. bin/ops-social-planner collect reads $PREFS_PATH/preferences.json (marketing.social_identities.personal.* + marketing.projects.*.social), dispatches a per-engine fetcher keyed on social.engine.primary, normalizes to one schema, and writes $OPS_DATA_DIR/social-planner/state.json (owner data — never committed, Rule 0).
  2. It then serves the static UI (ui/) on localhost and opens the browser.

Engines

engine.primary Source Status
typefully GET /v2/social-sets/{id}/drafts (Bearer; key from ~/.config/typefully/config.json) ✅ wired
upload-post GET /api/uploadposts/schedule (Apikey; key from engine.upload_post.api_key_ref) ✅ wired
meta-graph / meta-ads Graph Ads API per project BM/token 🔌 hook (UI shows "pending")
google-ads GAQL per project customer id 🔌 hook
null / unprovisioned shown fail-closed (0 items)

Adding an engine = adding one fetch<Engine>() in bin/ops-social-planner + a dispatch branch. No UI change.

Run it

"${CLAUDE_PLUGIN_ROOT}/bin/ops-social-planner"                 # collect → serve → open
"${CLAUDE_PLUGIN_ROOT}/bin/ops-social-planner" collect          # regenerate state.json only
"${CLAUDE_PLUGIN_ROOT}/bin/ops-social-planner" serve --port 7937  # serve existing state

The UI renders ui/state.sample.json (synthetic, PII-free) when no live state exists, so it works with zero credentials — useful for the PR preview.

Agent enrichment path (optional, when invoked as a skill)

The headless collector covers posts on wired engines. When richer output is wanted, the agent can:

  • Pull ads via MCP (mcp__meta__*, Google Ads) per project and merge kind:"ad" items into state.json.
  • Replace the heuristic rationale with an LLM-written one (slot + sequence + channel intent).
  • Re-run serve to refresh. Do not publish or edit from here — routing/mutation belongs to /ops-socials + /ops-marketing.

Guarantees

  • Read-only. No secrets in the client. Server binds 127.0.0.1 only.
  • Identity separation honored: personal vs project never merged; unprovisioned projects render fail-closed.
  • No owner data committed — only ui/ + bin/ + SPEC.md + the synthetic fixture.

Version History

  • 64bad13 Current 2026-08-12 09:02

Same Skill Collection

claude-ops/skills/boss/SKILL.md
claude-ops/skills/flow/SKILL.md
claude-ops/skills/ledger/SKILL.md
claude-ops/skills/ops-accounts/SKILL.md
claude-ops/skills/ops-ar/SKILL.md
claude-ops/skills/ops-aws-audit/SKILL.md
claude-ops/skills/ops-comms/SKILL.md
claude-ops/skills/ops-competitors/SKILL.md
claude-ops/skills/ops-credentials/SKILL.md
claude-ops/skills/ops-daemon/SKILL.md
claude-ops/skills/ops-dash/SKILL.md
claude-ops/skills/ops-deploy-fix/SKILL.md
claude-ops/skills/ops-deploy/SKILL.md
claude-ops/skills/ops-desktop/SKILL.md
claude-ops/skills/ops-doctor/SKILL.md
claude-ops/skills/ops-ecom/SKILL.md
claude-ops/skills/ops-feature-dev/SKILL.md
claude-ops/skills/ops-fires/SKILL.md
claude-ops/skills/ops-fleet/SKILL.md
claude-ops/skills/ops-go/SKILL.md
claude-ops/skills/ops-gtm/SKILL.md
claude-ops/skills/ops-home/SKILL.md
claude-ops/skills/ops-inbox/SKILL.md
claude-ops/skills/ops-integrate/SKILL.md
claude-ops/skills/ops-leadgen/SKILL.md
claude-ops/skills/ops-linear/SKILL.md
claude-ops/skills/ops-mac/SKILL.md
claude-ops/skills/ops-marketing/SKILL.md
claude-ops/skills/ops-mcp/SKILL.md
claude-ops/skills/ops-merge/SKILL.md
claude-ops/skills/ops-monitor/SKILL.md
claude-ops/skills/ops-next/SKILL.md
claude-ops/skills/ops-orchestrate/SKILL.md
claude-ops/skills/ops-package/SKILL.md
claude-ops/skills/ops-pocket/SKILL.md
claude-ops/skills/ops-projects/SKILL.md
claude-ops/skills/ops-recap/SKILL.md
claude-ops/skills/ops-release/SKILL.md
claude-ops/skills/ops-resume/SKILL.md
claude-ops/skills/ops-revenue/SKILL.md
claude-ops/skills/ops-rotate-setup/SKILL.md
claude-ops/skills/ops-rotate/SKILL.md
claude-ops/skills/ops-secret-sync/SKILL.md
claude-ops/skills/ops-settings/SKILL.md
claude-ops/skills/ops-ship/SKILL.md
claude-ops/skills/ops-speedup/SKILL.md
claude-ops/skills/ops-status/SKILL.md
claude-ops/skills/ops-triage/SKILL.md
claude-ops/skills/ops-unifi/SKILL.md
claude-ops/skills/ops-update/SKILL.md

Metadata

Files
0
Version
2dbf8cb
Hash
681c6d7b
Indexed
2026-08-12 09:02

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-13 01:43
浙ICP备14020137号-1 $お客様$