Agent skill · Audited from source

Social Post

skill · Hao0321/claude-skill-social-postMIT licenceAudited 20 Oct 2026 · source a6769aa361d8

★ 738pushed 4 days ago
!CAUTIONGrade B · 85/100 · 19 findings · a6769aa
738repo stars · whole Hao0321/claude-skill-social-post

Is it safe? With care — CAUTION, grade B (85/100). We read this skill's source at commit a6769aa361d8 and observed filesystem, network and shell access and no hard-coded secrets. The audit raised 19 findings, 0 critical or high. What it does: 依使用者真實貼文與成效寫 Facebook/Instagram/YouTube/Threads/X 文案,包含 ChatGPT Chat 的「寫文」「Mode C」「用我的格式/口氣」「黑底白字」;本機工作台、規劃、確認後發布、留言回覆及成效學習。使用者說「發文」「文案」「Social Post 介面」「回覆留言」「查流量」「把數據訓練進去」「比較貼文」「優化 pattern」時使用。

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “Social Post (Hao0321/claude-skill-social-post)”. Retrieved 20 Oct 2026. https://modelsatlas.com/skills/hao0321/social-post

Trust audit

Audit 0.4.1 · source read 20 Oct 2026

Trust score85/100!CAUTION B
0 critical0 high4 medium14 low1 info

CAUTION means the audit found things worth knowing before you trust this skill. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemUndeclared6 observations, not in its own description
  • NetworkUndeclared2 observations, not in its own description
  • ShellDeclared1 observation
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS1
L1 Static sourceSecrets, path traversal, supply chain, hidden codeWARN14
L2 InstructionsPrompt injection, authority framing, hidden directivesWARN4
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (19)

MEDIUMFilesystem / pathfs.destructive · scripts/sync_public.py:176
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
shutil.rmtree(destination)
Why
No further detail recorded for this rule.
Fix
—
MEDIUMNetwork egressnet.client · scripts/comment_browser_scan_contract.py:58
F-04 Network egressCWE-200 · CWE-319Layer L1
request = requests.get(request_id) if isinstance(request_id, str) else None
Why
No further detail recorded for this rule.
Fix
—
MEDIUMNetwork egressnet.client · workbench/api.js:16
F-04 Network egressCWE-200 · CWE-319Layer L1
const response = await fetch(path, {
Why
No further detail recorded for this rule.
Fix
—
MEDIUMPrompt injectionreview.misleading_scope · SKILL.md
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
使用者若在當前 session 明示「你自己操作不用問」,私人版可免逐次確認;不跨 session。
Why
The package description describes publishing only after user confirmation, but the instructions allow skipping per-post confirmation entirely, which the listing does not admit.
Fix
rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWInventory / provenanceinv.hidden_file · .social-post-managed.json
F-13 Inventory / provenanceCWE-1104Layer L0
.social-post-managed.json
Why
hidden member outside the usual dotfiles
Fix
review its purpose
LOWCode injectioncode.dynamic_import · scripts/workbench_test.py:371
F-02 Code injectionCWE-78 · CWE-94 · CWE-95Layer L1
suite = unittest.defaultTestLoader.loadTestsFromModule(__import__(__name__))
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · scripts/comment_chrome_fixture_evidence_testonly.mjs:17
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
specifier: "../../../plugins/cache/openai-bundled/chrome/26.825.51511/scripts/browser-client.mjs",
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · scripts/comment_chrome_runtime_authority.mjs:71
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
"../../../plugins/cache/openai-bundled/chrome/26.825.51511/scripts/browser-client.mjs",
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · scripts/comment_chrome_runtime_authority.mjs:80
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
"../../../plugins/cache/openai-bundled/chrome/26.825.51511/scripts/browser-client.mjs"
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · scripts/comment_js_architecture_contract.mjs:353
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
specifier: "../../../plugins/cache/openai-bundled/chrome/26.825.51511/scripts/browser-client.mjs",
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · scripts/comment_js_architecture_selftest.mjs:76
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
specifier: "../../../plugins/cache/openai-bundled/chrome/26.825.51511/scripts/browser-client.mjs",
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · references/workbench.md:12
F-04 Network egressCWE-200 · CWE-319Layer L1
Default address: http://127.0.0.1:8766. Python 3.10+ is required; the runtime uses
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · scripts/comment_chrome_actuator_fixture_test.mjs:204
F-04 Network egressCWE-200 · CWE-319Layer L1
url: "http://127.0.0.1:8765/instagram.html",
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · scripts/comment_chrome_fixture_contract_test.mjs:87
F-04 Network egressCWE-200 · CWE-319Layer L1
page_url: `http://127.0.0.1:8765/${platform}.html`,
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · scripts/comment_chrome_fixture_contract_test.mjs:223
F-04 Network egressCWE-200 · CWE-319Layer L1
page_url: `http://127.0.0.1:8765/${platform}.html`,
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · scripts/comment_chrome_fixture_contract_test.mjs:324
F-04 Network egressCWE-200 · CWE-319Layer L1
assert.throws(() => requireLoopbackBaseUrl("https://127.0.0.1:8765"), /plain loopback/);
Why
No further detail recorded for this rule.
Fix
—
LOWPrompt injectionprompt.transfer_instruction · references/chrome-comment-validation.md:25
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
- `comment_fixture_browser_e2e.mjs`:需 Browser Plugin backend;唯一 evidence runner 會自行啟動 ephemeral `127.0.0.1` server,依固定 `facebook → instagram → threads` 順序載入 source-bound fixture,並直接測 send core 的 DOM/f
Why
an instruction to move sensitive data to an outside destination
Fix
remove; a skill never needs the user's secrets off the machine
LOWPrompt injectionprompt.transfer_instruction · references/comment-operations.md:273
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
Fixture 驗證入口包含 `node scripts/comment_chrome_actuator_test.mjs` 與 `node scripts/comment_chrome_scan_adapters_test.mjs`;前者另測 reply thread 的初始空 viewport、無 terminal cursor、later-page exact own reply/expan
Why
an instruction to move sensitive data to an outside destination
Fix
remove; a skill never needs the user's secrets off the machine
INFOPrompt injectionscope.undeclared_network · <declared scope>
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
network use found in code, not declared in the description
Why
the description does not admit a capability the code has
Fix
declare network use in the description, or remove it

Audit 0.4.1 · source sha a6769aa361d8 · 20 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • PublisherHao0321 GitHub userOwner of the repository this skill is read from
  • Source folderHao0321/claude-skill-social-post/social-postThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdicta6769aa361d8A new audit runs when the source changes
  • Repository statusNot archivedLast push 4 days ago
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: 依使用者真實貼文與成效寫 Facebook/Instagram/YouTube/Threads/X 文案,包含 ChatGPT Chat 的「寫文」「Mode C」「用我的格式/口氣」「黑底白字」;本機工作台、規劃、確認後發布、留言回覆及成效學習。使用者說「發文」「文案」「Social Post 介面」「回覆留言」「查流量」「把數據訓練進去」「比較貼文」「優化 pattern」時使用。

---
name: social-post
description: 依使用者真實貼文與成效寫 Facebook/Instagram/YouTube/Threads/X 文案,包含 ChatGPT Chat 的「寫文」「Mode C」「用我的格式/口氣」「黑底白字」;本機工作台、規劃、確認後發布、留言回覆及成效學習。使用者說「發文」「文案」「Social Post 介面」「回覆留言」「查流量」「把數據訓練進去」「比較貼文」「優化 pattern」時使用。
---

# Social Post

把內容生成、實際發布與成效學習分開。依意圖只讀必要資料,不把整個案例庫一次塞進 context。

P5 執行前核對 `references/chrome-comment-adapter.md` 的當前狀態。CUA Threads 單則已完成真實送出與唯讀對帳;CUA IG 候選已接入但尚無新 runtime 送出實證;FB 送出與三平台批次仍未完成,泛用 production 關閉。target-only 不代表整篇/回覆串已掃完,semantic UI continuity 不代表實體 document epoch 或持久 node identity。單則實證不升級整體 capability,fixture 或候選程式存在也不能代替真實操作證據。

## Session 啟動

P0–P4 先讀 [references/writing-governance.md](references/writing-governance.md),核對 `scripts/social_governance.py status`。既有 voice、F 公式、規則正文以私人版本契約鎖定;禁止 P1/P4 或新爆款案例直接覆寫。新分析只能建立同平台/媒體 scope 的候選,經使用者審核精確 diff/digest,另行啟用後才變成正式有效版本。當輪要求改一篇草稿不是永久規則更新授權。

P2 必須讀 `context` 輸出的完整有效 F 與 voice,按固定段落功能、順序、標點與 CTA 寫,交付前核對同 revision 的 `check-draft` 並完成語義/事實 QA。F06 必須分清 F06a/F06b。結構 PASS 不等於模仿成功;未核對、契約漂移或 F 結構不符不得聲稱正式文案已完成。

P2 預設讀 `voice_quick.md`;只有 P1 重新學語氣、使用者明確要求深度仿寫,或 quick card 無法裁決時,才完整讀 `style_profile.md` 或使用者明確指定的 voice Skill。ChatGPT Chat 若沒有本機檔案/shell,依 `references/generate_and_publish.md` 的降階流程;只讀到公開範本或 GitHub repo,不代表已載入使用者的私人 voice。安全與使用者明示 > voice quick/明確指定的 voice Skill > 公式。

## 路由

| 觸發 | Mode | 必讀 |
|---|---|---|
| 開啟 Social Post 工作台/介面、看模式導覽 | Workbench | [references/workbench.md](references/workbench.md);只啟動本機 GUI,不暗中執行 AI 或解鎖外部操作 |
| 重新規劃、排內容 | P0 Plan | `references/phase0_plan.md`+`current_brief.md`+`scripts/social_data.py comparables` compact context+目標 formula;X 題材另讀 `references/x.md` 的演算法邊界 |
| 重新學語氣 | P1 Learn Voice | `references/learn_style.md`+`style_profile.md` |
| 寫一篇、PO、發文 | P2 Draft/Publish | `references/generate_and_publish.md`+`voice_quick.md`+`current_brief.md`+`scripts/social_data.py comparables` compact context+單一 formula;X 草稿先讀 `references/x.md` 的策略段,實際發布前再核對平台 UI |
| 把數據訓練進來、記錄成效 | P3 Log Outcome | `references/outcome-workflow.md`+`data/*.jsonl` |
| 比較貼文/集數、找 pattern | P4 Optimize Patterns | `references/outcome-workflow.md`+`references/evaluation.md`+相關 rules;X 演算法解釋另讀 `references/x.md` |
| 掃描、草擬、回覆 FB/IG/Threads 留言 | P5 Comment Ops | `references/comment-operations.md`+實際操作時的 `references/chrome-comment-adapter.md`+`scripts/comment_chrome_actuator.mjs`+`references/comment-policy.json`+目標平台 ref+`voice_quick.md` |
| 查歷史 Case | Legacy Case | `references/case_studies.md` 索引,再讀單一 `references/cases/case-NN.md` |

路由前用一句話告知正在做哪個 Mode。單純診斷不需要 Chrome。

工作流程 P0–P5、寫法 A/B/C、創作公式 F 是三個不同選擇。GUI 只列本機已安裝的公式;不把作者私人公式庫公開。純文字撰稿可直接在當前聊天依 P2 完成,不強迫每次開 GUI。介面目前用任務複製/貼回交接 AI,不能宣稱按鈕已自動呼叫 Codex/Claude。

## Source of truth

| 資料 | Canonical source |
|---|---|
| 貼文/caption/發布條件 | `data/posts.jsonl` |
| 洞察快照 | `data/insight_snapshots.jsonl` |
| 帳號期間總覽 | `data/account_snapshots.jsonl` |
| 跨篇假設與 confound | `data/experiments.jsonl` |
| 事實修正事件 | `data/corrections.jsonl`;原始 event 不覆寫 |
| 圖文/影片分區 | `scripts/social_cohorts.py` 的平台 × media family × content type × surface × maturity;不混合排名 |
| 第三方參考/候選與審核 | `data/learning_events.jsonl`;外部觀測與自有 KPI 嚴格分離 |
| 正式有效寫作契約 | `data/author_contract.json`+`data/author_contracts/`;凍結原始來源、審核後 scoped override,保留前版 |
| 規則正文 | `references/rules/RNN.md`;`references/rules.md` 是索引 |
| 規則生命週期/實驗 backlink | `references/rules/metadata.json` |
| 規則機器索引 | `data/rule_registry.json`(生成檔) |
| 舊案例全文 | `references/cases/` |
| Chrome 可見留言 observation | `data/comment_events.jsonl`;私人 append-only ledger |
| Chrome 掃描目標/期限 | `data/browser_scan_requests.jsonl`;私人 append-only ledger,先建立再掃描 |
| 回覆草稿/permit/送出/對帳 | `data/reply_events.jsonl`;私人 append-only ledger |
| 留言自動化政策 | `references/comment-policy.json` |
| 產品能力完成度/外部 canary | 私版 `.rd/capability-ledger.json` 是唯一 canonical ledger;`comment-capabilities.json` 只是 hash-bound 生成式公開投影,fixture 與 live 分開 |

新成效不得只寫進 Markdown。先寫 JSONL,再視需要更新人類摘要。

## 流量與演算法單一歸檔中樞

- 不論素材由 `video-autopilot`、YouTube 專門 Skill、Meta 面板或其他流程產生,所有發布後的流量、推薦來源、搜尋、留存、互動、受眾、追蹤/訂閱與轉化證據,都必須寫回本 Skill 的 `data/*.jsonl`。
- 專門 Skill 可以做平台診斷或產生剪輯/包裝建議;但觀測事實、跨平台比較、實驗證據與規則升降級,以本 Skill 為 canonical source,禁止另建互相漂移的成效記憶。
- 同一內容的 FB/IG/YouTube 指標各自建立有平台 scope 的 snapshot;Meta 合併卡片只能作 cross-platform reference,沒有完整平台洞察時不得冒充該平台 snapshot。
- 演算法時效性知識仍可放目標平台 reference;私人實測是否成立,只能依本 Skill 的同 maturity、多樣本資料升級。

## P3 Log Outcome

1. 每組洞察圖建立新 snapshot;不覆蓋舊數字。既有 event 的發布時間、片長或精度要修正時,追加 correction event,不直接改舊列。
   帳號 7/30/90 天總覽寫 `account_snapshots.jsonl`,不得綁到單篇貼文。
2. 每篇新 post 先建立 `analysis_status`、`analysis_version`、`analysis_eligible` 與精確 caption 的 `caption_sha256`;尚未完成語義分析時只能是 `pending`+`analysis_eligible:false`,不得先進 pattern learning。
3. `complete` post 必須保存完整文案/版型/長度、換行與段落、標點、關鍵字、named entities、數字語言、opening、hook、mechanism、differentiator、proof、語氣、CTA,以及由 `published_at`+timezone 驗證出的日期、星期、`HH:mm` 與 daypart。黑底白字另存背景、字色、字重、對齊與觀測行數;影片另存直式版型,不從縮圖猜未見內容。
4. caption 截斷、僅有代稱、placeholder 或尚待補證據時標成 `excluded_placeholder` 或 `pending`,一律 `analysis_eligible:false`;缺值用 `null`/空清單與低 confidence 明示,不補寫不存在的 hook、關鍵字、語氣或 CTA。
5. 記 published_at、captured_at、hours_since_publish 與 maturity。IG/FB total 與可取得的拆分同時保存;missing 用 `null`。
6. UI rate 與 derived rate 分開;留存曲線目測只寫 note。縮寫、上限或目測數字用 `metric_qualifiers` 標成 `rounded/upper_bound/visual_estimate`,不得冒充 exact。`metrics` 內的值直接用欄位名;其他巢狀值使用 dotted path(例如 `benchmarks_reported.views_more_than_usual_approx`)。
7. 先 dry-run `scripts/log_outcome.py`,明確寫入時才加 `--write`;寫完執行 `scripts/social_data.py validate`,caption hash、deterministic counts、日期/星期/分鐘或 analysis eligibility 任一不一致都不得通過。
8. 新數據不自動改寫作者契約。第三方資料用 `social_governance.py record-reference`,不得冒充自有 post;圖文與影片分區未知或衝突時不納入學習。新的寫作/F 改善建議用候選審核流程,不直接改 voice 或 F 原檔。

## P4 Optimize Patterns

先跑 feature matrix;series summary 只作 KPI 總覽。Matrix 只納入 `analysis_status:complete`、`analysis_eligible:true`、caption hash 與 analysis version 均有效的 post,並在選 latest 前排除 `awaiting_data`/`aggregation_eligible:false`,再以相同平台 scope 與 maturity 比較。每列必須同時帶出文案長度、段落/分隔、完整 Unicode 標點 profile、關鍵字、語氣、CTA、黑底白字/影片版型、日期、星期、分鐘與成效;可用 `--captured-before` 重建當時可見的歷史比較,避免後來快照污染判斷。

跨平台同步內

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit a6769aa

Download folder ↗
git clone https://github.com/Hao0321/claude-skill-social-post
git -C claude-skill-social-post checkout a6769aa361d8

The author documents no install command, so this uses the repository directly. Our verdict covers commit a6769aa361d8 only.

Works in which agents?

What its own text says, not a test

AgentStatusMore
Claude CodeMentioned in its text, not testedSkills for Claude Code · About Claude Code
CodexMentioned in its text, not testedSkills for Codex · About Codex
CursorMentioned in its text, not testedSkills for Cursor · About Cursor
“Mentioned” means the skill’s text names the agent. We have not run it there.

Audit history

Every audit, every source change

  1. !CAUTION B 85 / 100

    first audit · source a6769aa361d8

README badge

For maintainers · shows the latest audit

ModelsAtlas: CAUTION BMODELSATLASCAUTION · B
[![ModelsAtlas: CAUTION B](https://modelsatlas.com/skills/hao0321/social-post/badge.svg)](https://modelsatlas.com/skills/hao0321/social-post/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Similar skills

Add this badge to your README

[![ModelsAtlas: CAUTION B](https://modelsatlas.com/skills/hao0321/social-post/badge.svg)](https://modelsatlas.com/skills/hao0321/social-post/)

Questions about Social Post

What does the Social Post skill do?
A Claude Code skill by Hao (駱君昊) that learns your Facebook voice and auto-posts to FB / IG / Threads / X with a 14-day content calendar. Mega-viral validated: 80K reach / 448 likes / 500 comments on first post. Includes Day 2 flop postmortem.
Is Social Post safe to install?
With care. The audit graded it B (85/100) and found 19 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can Social Post access on my machine?
The audit observed that it reaches the network, runs shell commands and reads or writes files. At least one of those is not mentioned in its own description, which is itself a finding. Secrets in the source: none found.
Which assistants does Social Post work with?
Its documentation mentions claude-code, codex and cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (a6769aa361d8), read on 2026-10-20. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.