X Growth Automation
Build a separate, reusable X automation project for the user. Do not assume their current production project should be modified. Prefer creating a fresh folder unless they explicitly target an existing repo.
Core workflow
- 1. Ask setup questions first using
references/setup-questionnaire.md. - Choose safe rollout mode using
references/rollout-modes.md. - Scaffold a clean project with
scripts/scaffold_x_growth_project.py. - Fill configs based on the user's answers.
- Keep publish disabled by default unless the user explicitly asks for live publishing.
- If enabling live publish, keep caps, slot scheduling, and fallback rules explicit.
What this skill should help build
A reusable X automation system with these layers:
- - discovery via Bird CLI
- selection/scoring layer
- draft generation layer
- optional LLM-first approval layer
- optional source branching from an external editorial feed
- optional community CTA logic
- slot-based publishing via X API
- dry-run-first rollout
Non-negotiable safety defaults
- - Create the project in a new folder unless the user clearly says otherwise.
- Treat Bird as read/discovery first.
- Treat X API as write/publish layer.
- Default new installs to dry-run.
- If the user wants aggressive automation, still keep daily/monthly caps in config.
- Never silently copy private tokens, links, handles, or niche assumptions from another project.
- Treat reply automation as a higher-risk lane than normal posts; disable by default unless explicitly requested.
- In live mode, require clear logging for posted / skipped / failed outcomes.
- Use idempotent slot keys that do not depend on mutable draft text (prevent same-source repost loops).
- Add anti-repetition guardrails (for example last-48h similarity checks + source de-dup).
Ask these questions before scaffolding
Read references/setup-questionnaire.md and ask only the missing items.
Do not dump all questions at once if the user already answered some.
Minimum set to unblock setup:
- - niche/topic focus
- posting language
- dry-run or live
- daily target range
- monthly hard cap
- Bird available?
- X API available?
- source branching wanted?
- community CTA wanted?
After answers are clear
Run the scaffold script:
CODEBLOCK0
The JSON may include fields like:
- - INLINECODE4
- INLINECODE5
- INLINECODE6
- INLINECODE7
- INLINECODE8
- INLINECODE9
- INLINECODE10
- INLINECODE11
- INLINECODE12
- INLINECODE13
- INLINECODE14
- INLINECODE15
- INLINECODE16
- INLINECODE17
- INLINECODE18
Recommended setup behavior
If user says “install this system for me”
- - Ask the setup questions.
- Scaffold a fresh project.
- Fill the config files.
- Keep publish disabled unless they explicitly approve live mode.
- Explain where they should place credentials.
If user says “can we adapt this to my niche?”
- - Ask for niche, audience, tone, and content pillars.
- Update topic/search/watch-account config.
- Update crosspost/reply policy if needed.
If user says “make it more aggressive”
- - Increase cadence and caps explicitly.
- Keep hard caps documented.
- Confirm whether replies should include CTA or not.
- Do not remove quality gates unless asked.
- Keep reply-specific safeguards even in aggressive mode: target validation, skip-on-failure, and per-day caps.
If user says “I want community integration”
- - Ask whether the external community/feed is:
- source-of-truth content feed
- CTA destination only
- both
- - Configure source branching and reply CTA rules separately.
- Never assume the community platform is Telegram unless the user explicitly says so.
File customization order
After scaffolding, customize in this order:
- 1. INLINECODE19
- INLINECODE20 (if slot-based cadence is used)
- INLINECODE21
- INLINECODE22
- INLINECODE23 (or equivalent prompt/diversity controls)
- INLINECODE24
- INLINECODE25
- prompts if the user wants a distinct tone
When to enable live mode
Enable live mode only when all of these are true:
- - credentials are present
- the user explicitly wants live publish
- cadence/caps are set
- reply policy is defined
- source branching behavior is defined
- the user understands what will auto-post
Publish strategy guidance
Use explicit profiles and encode them in config:
- - Conservative: 2-5/day, reply lane optional, 0-2 core
- Balanced: 4-7/day, reply lane optional, 2-4 core
- High-volume: 10/day = 1 news crosspost + 1 special crosspost + 8 core posts
If the user chooses high-volume mode:
- - keep monthly cap explicit
- disable reply lane unless there is a clear reason to keep it
- enforce anti-repetition guardrails (recent-post similarity + source de-dup)
- distribute core slots through the day (avoid burst clustering)
If the user wants a different mix, encode it in config rather than burying it in prose.
Resources
scripts/
- -
scaffold_x_growth_project.py creates a clean generic project scaffold.
references/
- -
setup-questionnaire.md contains the installation interview. - INLINECODE28 explains dry-run vs live rollout choices.
X 增长自动化
为用户构建一个独立的、可复用的 X 自动化项目。不要假设他们当前的生产项目需要修改。除非用户明确指定现有仓库,否则优先创建一个新文件夹。
核心工作流程
- 1. 首先使用 references/setup-questionnaire.md 询问设置问题。
- 使用 references/rollout-modes.md 选择安全发布模式。
- 使用 scripts/scaffoldxgrowth_project.py 搭建一个干净的项目。
- 根据用户的回答填写配置。
- 默认保持发布禁用,除非用户明确要求实时发布。
- 如果启用实时发布,确保明确设置上限、时段调度和回退规则。
此技能应帮助构建的内容
一个可复用的 X 自动化系统,包含以下层级:
- - 通过 Bird CLI 进行发现
- 选择/评分层
- 草稿生成层
- 可选的 LLM 优先审批层
- 可选的外部编辑源分支
- 可选的社区 CTA 逻辑
- 通过 X API 进行基于时段的发布
- 先试运行再发布
不可妥协的安全默认设置
- - 在新文件夹中创建项目,除非用户明确说明其他情况。
- 将 Bird 视为只读/发现优先。
- 将 X API 视为写入/发布层。
- 新安装默认设置为试运行。
- 如果用户想要激进的自动化,仍需在配置中保留每日/每月上限。
- 切勿静默复制其他项目中的私有令牌、链接、用户名或领域假设。
- 将回复自动化视为比普通帖子风险更高的通道;默认禁用,除非明确请求。
- 在实时模式下,要求对已发布/已跳过/失败的帖子进行清晰日志记录。
- 使用不依赖于可变草稿文本的幂等时段键(防止同源重复发布循环)。
- 添加防重复护栏(例如最近48小时相似度检查 + 源去重)。
在搭建前询问这些问题
阅读 references/setup-questionnaire.md,仅询问缺失的项目。
如果用户已经回答了一些问题,不要一次性抛出所有问题。
解锁设置的最小问题集:
- - 领域/主题重点
- 发布语言
- 试运行或实时
- 每日目标范围
- 每月硬上限
- Bird 是否可用?
- X API 是否可用?
- 是否需要源分支?
- 是否需要社区 CTA?
答案明确后
运行搭建脚本:
bash
python3 scripts/scaffoldxgrowth_project.py --path <目标目录> --profile-json
JSON 可能包含以下字段:
- - projectname
- language
- nichesummary
- dailymin
- dailymax
- monthlycap
- communityenabled
- communitylink
- replyctaenabled
- replyctastyle
- sourcebranchingenabled
- sourcebranchinglabel
- birdenabled
- xapienabled
- live_publish
推荐的设置行为
如果用户说“为我安装这个系统”
- - 询问设置问题。
- 搭建一个全新的项目。
- 填写配置文件。
- 保持发布禁用,除非他们明确批准实时模式。
- 解释他们应该在哪里放置凭据。
如果用户说“我们可以将其适配到我的领域吗?”
- - 询问领域、受众、语气和内容支柱。
- 更新主题/搜索/关注账号配置。
- 根据需要更新交叉发布/回复策略。
如果用户说“让它更激进”
- - 明确提高发布频率和上限。
- 保持硬上限文档化。
- 确认回复是否应包含 CTA。
- 除非被要求,否则不要移除质量关卡。
- 即使在激进模式下也要保留回复特定的安全措施:目标验证、失败时跳过和每日上限。
如果用户说“我想要社区集成”
- 事实来源内容信息源
- 仅 CTA 目的地
- 两者都是
- - 分别配置源分支和回复 CTA 规则。
- 除非用户明确说明,否则切勿假设社区平台是 Telegram。
文件自定义顺序
搭建后,按此顺序自定义:
- 1. config/publish-policy.json
- config/publish-slots.json(如果使用基于时段的发布频率)
- config/topics.json
- config/budget-policy.json
- config/draft-diversity.json(或等效的提示/多样性控制)
- .env.example
- docs/operator-notes.md
- 如果用户想要独特的语气,则自定义提示词
何时启用实时模式
仅在满足以下所有条件时启用实时模式:
- - 凭据已存在
- 用户明确想要实时发布
- 发布频率/上限已设置
- 回复策略已定义
- 源分支行为已定义
- 用户了解将自动发布什么内容
发布策略指南
使用明确的配置文件并将其编码到配置中:
- - 保守型: 每天2-5条,回复通道可选,0-2条核心
- 平衡型: 每天4-7条,回复通道可选,2-4条核心
- 高容量型: 每天10条 = 1条新闻交叉发布 + 1条特殊交叉发布 + 8条核心帖子
如果用户选择高容量模式:
- - 保持每月上限明确
- 禁用回复通道,除非有明确的理由保留它
- 强制执行防重复护栏(近期帖子相似度 + 源去重)
- 将核心时段分布到全天(避免突发聚集)
如果用户想要不同的组合,将其编码到配置中,而不是埋没在文字描述中。
资源
scripts/
- - scaffoldxgrowth_project.py 创建一个干净的通用项目模板。
references/
- - setup-questionnaire.md 包含安装访谈。
- rollout-modes.md 解释试运行与实时发布的选择。