Publish social
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 landing-page placement.From its SKILL.md
npx -y skills add hungv47/meta-skills --skill publish-socialAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.5 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
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 · agents + 4-route dispatch: 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.
- Auto-detect never publishes —
export/draftonly; live needs--mode=publish. - Publish opt-in and gated — critic PASS + two-stage confirmation;
--dry-runposts nothing. - Credential safety — values NEVER logged/written;
.forsvn/credentials/platforms.jsongitignored; dim 6 greps_KEY/_TOKEN/_SECRET. - Char-cap — X 280 · Threads 500 · Bluesky 300 · LinkedIn 3000 · IG 2200 · FB 63206 · YouTube 5000 · TikTok 2200 · Reddit 300+40000. One over = FAIL.
- Scheduler-format validation — Typefully JSON + Buffer/Hootsuite/generic CSVs parse cleanly (columns, UTF-8, ISO-8601).
- Provenance —
input_artifacts= write-social + media manifests +brand/BRAND.md;output_eval: nulluntilevaluate-content. - Browser-automation confirm gate (D17) — preview + single-confirm; declined/timeout → export.
references/confirmation-gate.md. - Two-stage gate for
--mode=publish(D18) — dims 1-7 PASS, Stage 1 body review + Stage 2 typedPUBLISH. Abort → export.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.md → NEEDS_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=publish → content 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. Full: references/rubric.md.
Routes
4 routes — full dispatch: 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-runexits → 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## Legibilitysection (convention). - Provenance:
input_artifacts= write-social + media manifests +brand/BRAND.md;output_eval: nulluntilevaluate-content. - Cross-stack: schema changes need atomic update across write-social/produce-asset/produce-video. Full:
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 — top hits: credential leakage (G3/d6), char-cap trunc (G4/d1).
Durable Rules (protected)
<!-- SLOW_UPDATE_START --> <!-- No pinned rules yet. Populate via the slow-update workflow (see references/slow-update-fence.md). Each pinned rule must (a) be procedural not instance-specific, (b) be earned from a regression or critic-flagged failure, (c) cite the artifact / decision record that justified pinning. --> <!-- SLOW_UPDATE_END -->Completion Status
- DONE — bundle written, critic passed, Gates green; publish posts live + confirmation logged.
- DONE_WITH_CONCERNS — critic flagged secondary issues OR one platform fell back to draft/export on publish.
- NEEDS_CONTEXT — write-social missing OR
brand/BRAND.mdmissing OR targets not derivable. - BLOCKED —
--mode=publishwith 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; record execution_mode.
Session execution profile (single-vs-multi): inherit per references/_shared/execution-policy.md.
What ships with it: 69 files
742.2 KB alongside SKILL.md, 4 of them executable
agents/
- automation-agent.md14.0 KB
- critic-agent.md25.5 KB
- formatter-agent.md21.5 KB
references/
- agent-manifest.md3.6 KB
- anti-patterns.md12.5 KB
- automation-flows/bluesky.md5.4 KB
- automation-flows/facebook.md4.9 KB
- automation-flows/instagram.md5.8 KB
- automation-flows/linkedin.md5.2 KB
- automation-flows/reddit.md5.3 KB
- automation-flows/threads.md4.6 KB
- automation-flows/tiktok.md5.5 KB
- automation-flows/youtube.md5.8 KB
- confirmation-gate.md5.9 KB
- examples/publish-bundle-walkthrough.md21.1 KB
- format-conventions.md12.5 KB
- platform-credentials.md10.1 KB
- platforms/bluesky.md3.0 KB
- platforms/facebook.md3.0 KB
- platforms/instagram.md3.8 KB
- platforms/linkedin.md3.3 KB
- platforms/reddit.md4.2 KB
- platforms/threads.md2.3 KB
- platforms/tiktok.md3.1 KB
- platforms/x.md3.2 KB
- platforms/youtube.md3.6 KB
- playbook.md9.6 KB
- procedures/critical-gates.md2.8 KB
- procedures/dispatch-mechanics.md12.3 KB
- procedures/next-step.md1.1 KB
- procedures/performance-ledger.md1.4 KB
- procedures/pre-dispatch.md6.3 KB
- publish-confirmation-gate.md8.8 KB
- quality-gate.md2.2 KB
- rubric.md15.3 KB
- scheduler-formats.md8.3 KB
- session-cookie-export.md7.5 KB
- _shared/artifact-contract-template.md28.8 KB
- _shared/before-starting-check.md9.8 KB
- _shared/execution-fork.md5.6 KB
29 more files not listed here. See all 69 in the repository.