AgentStack
SKILL verified MIT Self-run

Publish Social

skill-hungv47-meta-skills-publish-social · by hungv47

Turn write-social copy into a publishing bundle — per-platform drafts plus scheduler-import files (Typefully / Buffer / Hootsuite / CSV). `--mode=publish` posts live behind a two-stage gate. Covers 9 platforms (X / LinkedIn / Instagram / YouTube / TikTok / Facebook / Bluesky / Threads / Reddit). Not for writing copy (use write-social), media generation (use produce-asset / produce-video), or land…

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-hungv47-meta-skills-publish-social

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Publish Social? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Publish Social — Integration-Aware Bundle Emitter

Converts a write-social artifact into a per-platform draft bundle + scheduler-import files. Auto-detects credentials, picks highest non-publish mode. Routing: [routing.yaml](routing.yaml) · agents + 4-route dispatch: [references/agent-manifest.md](references/agent-manifest.md).

Core question: Can the operator paste one file into their scheduler (or find X drafts in Typefully) without formatting another line?

Critical Gates — load first

Non-negotiable. Full: references/procedures/critical-gates.md.

  1. Auto-detect never publishesexport/draft only; live needs --mode=publish.
  2. Publish opt-in and gated — critic PASS + two-stage confirmation; --dry-run posts nothing.
  3. Credential safety — values NEVER logged/written; .forsvn/credentials/platforms.json gitignored; dim 6 greps _KEY/_TOKEN/_SECRET.
  4. Char-cap — X 280 · Threads 500 · Bluesky 300 · LinkedIn 3000 · IG 2200 · FB 63206 · YouTube 5000 · TikTok 2200 · Reddit 300+40000. One over = FAIL.
  5. Scheduler-format validation — Typefully JSON + Buffer/Hootsuite/generic CSVs parse cleanly (columns, UTF-8, ISO-8601).
  6. Provenanceinput_artifacts = write-social + media manifests + brand/BRAND.md; output_eval: null until evaluate-content.
  7. Browser-automation confirm gate (D17) — preview + single-confirm; declined/timeout → export. references/confirmation-gate.md.
  8. Two-stage gate for --mode=publish (D18) — dims 1-7 PASS, Stage 1 body review + Stage 2 typed PUBLISH. Abort → export. [references/publish-confirmation-gate.md](references/publish-confirmation-gate.md).

Inputs

| Artifact | Req | Provides | |---|---|---| | write-social (path/slug) | yes | Platforms, body variants, hook, CTA, hashtags, media refs | | brand/BRAND.md | yes | Voice, sacred elements, archetype | | produce-asset / produce-video manifest | opt | Image / video media | | --mode | opt | auto · export · draft · publish (+ --dry-run) | | Target platforms | opt | Defaults to write-social; subset via flag |

Missing write-social → NEEDS_CONTEXT (/write-social). Missing brand/BRAND.mdNEEDS_CONTEXT (/create-brand).

Output

Bundle docs/forsvn/artifacts/marketing/published-social/[slug]/: manifest.md, platforms/[platform].md (per target), scheduler-imports/{typefully.json,buffer.csv,hootsuite.csv,generic.csv}, README.md. Schema: references/format-conventions.md.

Quality Gate

Critic enforces 8-dim rubric. Export/draft → before delivery; --mode=publishcontent gate before the confirmation gate.

Pass: ≥56/80 aggregate AND every dim ≥6. FAIL → re-dispatch formatter (or automation for dim 7), max 2 cycles. Persistent publish FAIL → BLOCKED. Per-dim: [references/quality-gate.md](references/quality-gate.md). Full: [references/rubric.md](references/rubric.md).

Routes

4 routes — full dispatch: [references/procedures/dispatch-mechanics.md](references/procedures/dispatch-mechanics.md):

  • A no credentials: formatter export-all-9 → critic → bundle.
  • B Typefully key: X via Draft API + 8 export → critic → bundle.
  • C (D17) browser-automation: formatter → confirm gate → automation (3s pacing, export fallback) → critic → bundle.
  • D (D18) --mode=publish: formatter + export fallback → critic content gate → --dry-run exits → two-stage gate → publish (Typefully X, automation 8) → dim 8.

Artifact Contract

  • Root: docs/forsvn/artifacts/marketing/published-social/[slug]/ · Lifecycle: pipeline.
  • Frontmatter: manifest (16 fields) + per-platform draft (12 fields) — incl. pack_verified/applied_tactics + a per-draft ## Legibility section ([convention](references/_shared/legibility-convention.md)).
  • Provenance: input_artifacts = write-social + media manifests + brand/BRAND.md; output_eval: null until evaluate-content.
  • Cross-stack: schema changes need atomic update across write-social/produce-asset/produce-video. Full: [references/format-conventions.md](references/format-conventions.md) (v2 baseline: _shared/artifact-contract-template.md).

Chain · Re-run · Anti-Patterns

Prev: write-social + create-brand (req), produce-asset/produce-video (opt). Next: see ## Execution; feeds evaluate-content.

Re-run: write-social re-emitted, targets/scheduler changed, credentials first configured, draft rejected.

Anti-patterns: [references/anti-patterns.md](references/anti-patterns.md) — top hits: credential leakage (G3/d6), char-cap trunc (G4/d1).

Durable Rules (protected)

Completion Status

  • DONE — bundle written, critic passed, Gates green; publish posts live + confirmation logged.
  • DONEWITHCONCERNS — critic flagged secondary issues OR one platform fell back to draft/export on publish.
  • NEEDS_CONTEXT — write-social missing OR brand/BRAND.md missing OR targets not derivable.
  • BLOCKED--mode=publish with no credentials; critic FAILed twice (publish: gate never fires; export/draft: spec). Operator-aborted two-stage gate is NOT BLOCKED — ships export bundle as DONE.

Execution

Offer the registry-gated fork (category publish) — Brief-only: follow the manifest's per-route instruction (export · Typefully draft · automation draft · publish); Assisted/Direct need a verified engine. See [execution-fork.md](references/_shared/execution-fork.md); record execution_mode. Session execution profile (single-vs-multi): inherit per references/_shared/execution-policy.md.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.