social-flow
AGENTS.md1 starsChanged 3 months agoApache-2.0View on GitHub
social-flow is a Claude Code plugin: 29 skills, 5 reviewer agents, and one bundled MCP server. README.md is the source of truth for structure and the tool list; CLAUDE.md holds the owner's dated production directives (the later date wins), the branch flow, the commit rules and the Korean prose rules. Read CLAUDE.md before you write anything — no checker runs on docs, comments or tool descriptions, so the writer holds the style line with the D8 scan quoted there. For…
- Reads credentials
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository30 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- autoproduceSkill
- brandingSkill
- channelSkill
- compose-blenderSkill
- datagoSkill
- edit-speechSkill
- generate-cut-imagesSkill
- generate-cut-videosSkill
- grow-instagramSkill
- grow-threadsSkill
- grow-youtubeSkill
- ingestSkill
- inspect-contentSkill
- introSkill
- platform-guideSkill
- produceSkill
- project-initSkill
- publishSkill
- review-cameraSkill
- review-contextSkill
- review-cut-imagesSkill
- review-cut-videosSkill
- review-recentSkill
- setup-instagramSkill
- setup-threadsSkill
- setup-youtubeSkill
- storyboardSkill
- topic-scoutSkill
- upscale-videoSkill
The file
We split this AGENTS.md into the rules it gives an agent
5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Never print a token, put it in a remote URL, persist it in a file or change global authentication for this task.
- Very specific: line 52
Keep the existing remote video route separate.
- Very specific: line 58
If a call unexpectedly reaches https://genai.astravision.co.kr, returns an empty model list or says Model capability is disabled, compare …
- Very specific: line 80
Keep it under 1,024 characters, and keep <angle> placeholders out of it — write data/[channel]/episodes/[topic]/ instead.
- Very specific: line 91
Never put disable-model-invocation: true on a grow-* skill — besides hiding it from the model, it stops a scheduled task or /loop from …
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md — working rules for this repository
social-flow is a Claude Code plugin: 29 skills, 5 reviewer agents, and one bundled MCP server. README.md is the source of truth for structure and the tool list; CLAUDE.md holds the owner's dated production directives (the later date wins), the branch flow, the commit rules and the Korean prose rules. Read CLAUDE.md before you write anything — no checker runs on docs, comments or tool descriptions, so the writer holds the style line with the D8 scan quoted there.
GitHub authentication — owner directive, 2026-10-16
For this ttalkkaklab/social-flow repository, prefer the environment variable
TTALKKAKLAB_GITHUB_TOKEN over generic GITHUB_TOKEN or GH_TOKEN. Before push,
PR creation or merge, use it for both GH_TOKEN and GITHUB_TOKEN in the command's
environment. This also lets Git's configured gh auth git-credential helper use
the correct account. Verify the account with gh api user --jq .login and the
repository's push permission; do not assume the generic token belongs to ttalkkaklab.
Never print a token, put it in a remote URL, persist it in a file or change global
authentication for this task. If the dedicated variable is absent or lacks access,
report that specific blocker without revealing its value.
Tool lanes — one lane each
These are the lanes the skills are allowed to name. A skill's allowed-tools may
list the plugin's own server and nothing else; a host CLI's native media tools are not MCP
tools and never appear there.
| Job | Lane | Not allowed |
| Driving a browser | ego lite (ego-browser, a tool of the user's machine) | claude-in-chrome, chrome-devtools MCP, any other browser automation |
| Rendering or screenshotting a page | headless Chrome via skills/produce/references/capture-frames.sh | browser MCP servers |
Images and video where the host CLI ships its own media tools (Codex image_gen; Grok image_gen · image_edit · image_to_video · reference_to_video) | the saved model choice in .social-flow/models.json governs (user directive 2026-10-16); ASTRA GenAI is the image setup recommendation (2026-10-18), a supported host tool is the video setup recommendation, and a fallback after a failed host call is asked for, never silent | any external MCP server |
| Images, video, voice, music, search otherwise | mcp__social-flow__* and its plugin-install form mcp__plugin_social-flow_social-flow__* — the server this plugin ships | any external MCP server |
Web search with no SERPAPI_API_KEY or Naver pair | the host's WebSearch tool — the one allowed search fallback | any external MCP server |
| Reading an image | the Read tool, which takes images natively | vision MCP servers |
ego lite has no fallback. It is macOS-only. Where it is missing, the skill says
so and stops; it does not reach for a second browser. Two of these lanes exist
because a fallback lane rotted in place — six chrome-devtools tools and eighteen
claude-in-chrome tools sat in allowed-tools for versions after the servers were
gone from every machine that runs this plugin.
Local GenAI connection — owner directive, 2026-11-07
For /Volumes/data/story/insight, astra-genai-native / qwen-image-fast means
the local GenAI gateway at http://127.0.0.1:18081, backed by MLX Serve
(qwen-image-2.1-turbo). Before generation, verify the image endpoint and credential
are available to the MCP server process, then call astra_genai_catalog kind:image
and confirm that alias and protocol. A shell's environment is not evidence that an
already-running MCP server inherited it. Forward ASTRA_GENAI_IMAGE_URL and
ASTRA_GENAI_IMAGE_API_KEY; speech uses the corresponding SPEECH variables.
Keep the existing remote video route separate. Never print or persist secret values.
For a Codex STDIO connection, include the six ASTRA_GENAI_* names (base URL/key,
image URL/key and speech URL/key) in mcp_servers.social-flow.env_vars; write variable
names only. Verify a fresh connection with that whitelist. Updating config does not
change the environment of a server that is already running.
If a call unexpectedly reaches https://genai.astravision.co.kr, returns an empty
model list or says Model capability is disabled, compare its receipt's baseUrl
with the last successful receipt. Restore the same local route before proposing a
different model or asking the user to select one. Check uncertain requests before
retrying; do not discard their receipts. A fresh invocation of this plugin's own
MCP server may inherit the correct shell environment when the session's connection
is stale. Verify recovery with an actual requested image and its local receipt.
Images containing text
For every new image generation or edit that must display or preserve readable text,
use GPT Image 2 (gpt-image-2). This owner directive (2026-10-18) overrides saved
image defaults and the host-first lane above. Verify the host model or use the
plugin GPT Image adapter; never assume host-managed identifies GPT Image 2.
See CLAUDE.md and image routing for
scoped selection, unavailable-model handling and text inspection.
Skill frontmatter
descriptionis the routing surface. Codex truncates it to about 76 characters (measured on codex-cli 0.149.1), so the first clause has to say what the skill does and where it stops. Trigger phrases come after that clause.- Keep it under 1,024 characters, and keep
<angle>placeholders out of it — writedata/[channel]/episodes/[topic]/instead. - Where two skills could catch the same request, each description says the boundary in its own words. storyboard plans and stops for approval · produce builds an approved episode · autoproduce runs both unattended.
argument-hintstays. Codex ignores the field and loads the skill anyway (measured: every skill present incodex debug prompt-input), and Claude Code uses it.allowed-toolsnames each of this server's tools twice:mcp__social-flow__<tool>(a project.mcp.json, Codex) andmcp__plugin_social-flow_social-flow__<tool>(a Claude Code marketplace install). Claude Code permission rules match a plugin server only in the plugin form, so the bare name alone pre-approves nothing there. skill-lint holds the pair.- Never put
disable-model-invocation: trueon agrow-*skill — besides hiding it from the model, it stops a scheduled task or/loopfrom running the skill.
Before you say it works
cd server && npm run check # build + contract tests
cd .. && node skills/platform-guide/references/skill-lint.jsskill-lint.js checks the frontmatter rules above, the tool lanes, and that no
skill points at a reference file that isn't there. Both run in CI
(.github/workflows/check.yml) — a green local run is what a PR needs.
New tests follow CLAUDE.md's "Tests — few, one file per module" section: add cases to
the tested module's existing file, and only for behavior the change adds or alters.
server/test/test-layout.test.mjs rejects a test file named after no module.
Anything under data/ is a local artifact and never gets committed. server/dist/
is a build artifact that must be committed, because marketplace installs never
run npm install.
워크트리 경로 — 사용자 지침, 2026-10-10
- 새 워크트리는 이 저장소의 기본 체크아웃 루트 아래
.worktree/<이름>/에 만든다. - 연결된 워크트리에서 작업 중이면
git worktree list --porcelain의 첫worktree경로를 기본 루트로 사용한다. 현재 디렉토리 아래에 다시 중첩하지 않는다. .worktrees/, 저장소 옆 디렉토리, 공용 워크트리 폴더를 생성 경로로 쓰지 않는다. ASTRA와 다른 도구의 기본 경로보다 이 사용자 지침을 우선한다..gitignore에/.worktree/를 등록한다. 이 워크스페이스에서는git wt-add <이름> <새-브랜치> [기준-브랜치]로 생성할 수 있다.- 별칭이 없으면 기본 루트에서
git worktree add -b <새-브랜치> .worktree/<이름> <기준-브랜치>를 실행한다. 기존 브랜치 정책을 따른다. - 머지 여부와 미커밋 변경을 확인한 뒤
git worktree remove로 정리한다. 미완료 작업과 로컬 자료는 보존하고 경로 이동에는git worktree move를 쓴다.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

