sdt-skills README

The project's README from github.com/StopDisTrain/sdt-skills. As one markdown file: README.md.

SDT Skills

一套面向小红书内容研究、创作与质检的开源 Agent Skills 工具箱。
An open-source Agent Skills toolkit for Xiaohongshu content research, creation, and quality control.

SDT 把账号建模、公开内容研究、对标筛选、传播机制拆解、选题生成、内容成稿和发布前质检,拆成 15 个可以独立调用的 Skills。需要稳定执行的指标换算、选题评分、标题检查和 HTML 渲染,则交给 Python 工具完成。

SDT breaks account modeling, public-content research, benchmark filtering, spread analysis, topic generation, drafting, and pre-publish QA into 15 independently callable Skills. Repeatable tasks such as metric normalization, topic scoring, title validation, and HTML rendering are handled by Python tools.

我想解决的不是“让模型一次多写几篇”,而是让一条内容从哪里来、为什么这样写、出了问题应该退回哪一步,都能说清楚。

The goal is not simply to make a model produce more content. It is to make the source, editorial reasoning, and repair path of each piece of content explicit.

15 Skills · 10-stage workflow · 5 Python tools · CI guardrails · MIT License

为什么做 / Why I built it

一个很长的 Prompt 确实可以一次写完研究、选题和成稿。但实际使用时,标题改不好不该重跑研究,资料不足也不该靠模型把空白补齐。更麻烦的是,交付看似完整,出了问题却很难知道该回到哪一步。

A long prompt can produce research, topics, and a draft in one pass. In practice, a weak title should not force the research to run again, and missing information should not be filled with plausible inventions. The output may look complete while giving no clear place to repair a failure.

所以 SDT 把日常工作里反复出现的判断写进模块边界:

SDT therefore turns recurring editorial decisions into module boundaries:

架构 / Architecture

flowchart LR
    U["用户任务<br/>User brief"] --> R["任务路由<br/>sdt router"]

    subgraph E["证据层 / Evidence"]
      A["账号模型<br/>Account model"] --> RS["只读研究<br/>Read-only research"]
      RS --> B["对标筛选<br/>Benchmark filter"]
      B --> S["传播机制<br/>Spread mechanism"]
    end

    subgraph P["生产层 / Production"]
      T["选题生成与评分<br/>Topic generation and scoring"] --> C["内容成稿<br/>Content draft"]
      C --> XT["标题<br/>Title"]
      C --> CV["封面<br/>Cover"]
      C --> H["开头<br/>Hook"]
    end

    subgraph Q["质检层 / Quality"]
      F["脚本流畅度<br/>Script flow"] --> RE["共鸣检查<br/>Resonance"]
      RE --> AI["AI 痕迹与语气<br/>AI trace and voice"]
    end

    subgraph O["交付层 / Delivery"]
      PKG["发布包<br/>Publish-ready package"] --> WX["公众号 HTML<br/>WeChat HTML"]
      PKG --> SYS["内容资产库<br/>Content system"]
    end

    R --> A
    S --> T
    XT --> F
    CV --> F
    H --> F
    AI --> PKG

图里的箭头是交接关系,不代表每次都必须从头跑到尾。用户只问一个步骤时,路由器会直接进入对应模块。

The arrows show handoffs, not a mandatory sequence for every request. A single-step request is routed directly to the relevant module.

为什么拆成多个 Skills / Why split the work into Skills

15 个 Skills / 15 Skills

层级 / Layer Skill 职责 / Responsibility 常见输出 / Typical output
路由 / Router sdt 选择单个模块,或在明确要求时组织完整流程 / Select one module or coordinate the full workflow when requested 执行路线、生产简报 / Route, production brief
上下文 / Context sdt-account 整理事实、受众、产品、语气和表达边界 / Model facts, audience, product, voice, and boundaries 账号档案 / Account profile
证据 / Evidence sdt-research 只读收集小红书公开信息,并记录来源和限制 / Collect public Xiaohongshu evidence read-only, with sources and limitations 证据表、限制说明 / Evidence table, limitations
证据 / Evidence sdt-benchmark 排除名人效应、粉丝体量和独特资源,筛出可学样本 / Filter celebrity effects, audience size, and unique resources to find learnable samples 对标样本集 / Qualified sample set
策略 / Strategy sdt-spread 拆解情绪、分享动机、有效立场和可迁移机制 / Decode emotion, sharing motives, effective positioning, and transferable mechanisms 传播机制卡 / Mechanism card
策略 / Strategy sdt-topic 生成、迁移、评分并筛选选题 / Generate, adapt, score, and filter topics 候选池、Top 5 / Topic pool, Top 5
生产 / Production sdt-content 把确认过的选题写成可拍或可发布内容 / Turn an approved topic into shoot-ready or publish-ready content 逐字稿、图文稿 / Script, post draft
包装 / Packaging sdt-xhs-title 生成并检查标题,确认正文能兑现承诺 / Generate and validate titles against the body promise 标题排序、A/B 方案 / Ranked titles, A/B options
包装 / Packaging sdt-cover 设计封面文案、构图和测试方案 / Design cover copy, composition, and test variants 封面简报 / Cover brief
包装 / Packaging sdt-hook 检查并改写短视频前五秒 / Diagnose and write the first five seconds Hook 方案、嵌入版脚本 / Hook options, embedded script
质检 / QA sdt-script-flow 检查衔接、信息密度、口播节奏和流失风险 / Check transitions, density, spoken rhythm, and drop-off risk 流畅度诊断、改稿 / Flow diagnosis, revision
质检 / QA sdt-resonate 检查受众张力、立场和分享动机 / Check audience tension, positioning, and sharing motive 共鸣诊断 / Resonance diagnosis
质检 / QA sdt-ai-check 识别 AI 写作痕迹和账号语气偏差 / Detect AI-writing signals and account-voice mismatch AI 痕迹报告 / AI trace report
交付 / Delivery sdt-wechat-html 把通过质检的 Markdown 转成公众号兼容 HTML / Convert approved Markdown into WeChat-compatible HTML 可发布 HTML / Publishable HTML
学习 / Learning sdt-content-system 归档证据、成稿、发布数据和复盘结论 / Archive evidence, drafts, publishing data, and reviews 可复用内容资产 / Reusable content assets

10 阶段工作流 / 10-stage workflow

完整流程只在用户明确要求“一站式生产”时运行。平时改标题、查对标或检查脚本,都可以从对应阶段开始。

The full workflow runs only for an explicit end-to-end request. Title revisions, benchmark research, and script checks can start at the relevant stage.

flowchart TD
    S0["0 · 定义任务 / Define task<br/>平台、目标、验收物"] --> S1["1 · 建立账号模型 / Model account<br/>事实、受众、产品、边界"]
    S1 --> S2["2 · 收集证据 / Collect evidence<br/>来源、时间、公开指标"]
    S2 --> S3["3 · 筛选对标 / Filter benchmarks<br/>垂直、邻近、跨域"]
    S3 --> S4["4 · 拆传播机制 / Decode mechanisms<br/>承重杠杆、不可迁移表面"]
    S4 --> S5["5 · 迁移选题 / Transfer topics<br/>20 个候选、评分、Top 5"]
    S5 --> S6["6 · 生产内容 / Produce content<br/>核心命题、自然产品落点"]
    S6 --> S7["7 · 内容包装 / Package<br/>标题、封面、开头"]
    S7 --> S8["8 · 质量门槛 / Quality gates<br/>流畅度、共鸣、AI 痕迹"]
    S8 --> S9["9 · 归档复盘 / Archive and learn<br/>版本、假设、表现、结论"]

    S8 -. "事实或来源问题 / fact or source issue" .-> S2
    S8 -. "机制不匹配 / mechanism mismatch" .-> S5
    S8 -. "主张或立场问题 / claim or positioning issue" .-> S6

各阶段的输入、输出和停止条件见 pipeline.md。
See pipeline.md for stage inputs, outputs, and stop conditions.

5 个 Python 工具 / 5 Python tools

工具 / Tool 用途 / Role 代码保证什么 / Deterministic value 测试 / Tests
normalize_metrics.py 解析 3.2万 等可见指标 / Parse visible metrics such as 3.2万 把混合格式统一成可比较数字 / Normalize mixed human-readable numbers 内置自测 / Built-in self-test
redbook_readonly.py 封装小红书公开研究命令 / Wrap public Xiaohongshu research commands 命令白名单、凭证参数拦截、超时、验证后不自动重试 / Allow-list, credential blocking, timeout, and no automatic retry after verification 仓库安全测试 / Guardrail tests in the repository validator
score_topics.py 给选题卡评分和排序 / Score and rank topic cards 分数有边界,硬性风险可直接淘汰 / Bounded scoring with hard-rejection rules 内置自测 / Built-in self-test
validate_titles.py 检查标题长度和基础风险信号 / Inspect title length and basic risk signals 同一标准可以重复执行 / Repeatable title checks 内置自测 / Built-in self-test
render_wechat_html.py 把 Markdown 转成内联样式 HTML / Convert Markdown to inline-style HTML 不同样式预设下稳定渲染 / Reproducible rendering across style presets 内置自测 / Built-in self-test

测试、安全边界与隐私 / Testing, guardrails, and privacy

每次 push 和 pull request 都会执行:
Every push and pull request runs:

python tools/validate_repo.py

验证器会检查 15 个 Skill 的元数据、Agent UI 元数据、4 个工具自测、小红书只读边界,以及公开仓库是否混入敏感文件。
The validator checks metadata for all 15 Skills, Agent UI metadata, four tool self-tests, Xiaohongshu read-only guardrails, and whether private artifacts have entered the public repository.

运行时还守住几条底线:

The runtime keeps a few non-negotiable boundaries:

完整测试矩阵见 docs/testing-and-guardrails.md。
See docs/testing-and-guardrails.md for the full test matrix.

安装 / Install

让 Codex 安装全部 SDT Skills / Ask Codex to install all SDT Skills

把本仓库链接发给 Codex,然后说:
Share this repository with Codex and say:

请使用 skill-installer,从 https://github.com/StopDisTrain/sdt-skills 安装 skills/ 下所有以 sdt 开头的 Skill。

English prompt:

Use skill-installer to install every Skill whose folder name starts with sdt under skills/ from https://github.com/StopDisTrain/sdt-skills.

安装后的 Skills 会在下一轮对话中生效。
The installed Skills become available on the next turn.

手动安装 / Manual installation

把需要的 Skill 文件夹复制到 ~/.codex/skills/。每个 Skill 保留独立目录和自己的 SKILL.md,然后重新加载 Codex。
Copy the desired Skill folders into ~/.codex/skills/. Keep each Skill in its own directory with its SKILL.md, then reload Codex.

公开仓库里有什么 / Repository boundary

.
├── skills/                  # 15 个可复用 Skills / 15 reusable Skills
├── docs/                    # 脱敏案例与测试说明 / Sanitized cases and test notes
├── tools/                   # 零依赖仓库校验 / Zero-dependency repository validation
├── .github/workflows/       # CI 自动校验 / CI validation
├── README.md
└── LICENSE

仓库只放可以公开复用的方法、代码和脱敏证据。原始账号链接、截图、研究导出、未发布报告、生成文档和 QA 渲染留在本地。
The repository contains reusable methods, code, and sanitized evidence only. Raw account links, screenshots, research exports, unpublished reports, generated documents, and QA renders remain local.

许可证 / License

SDT 使用 MIT License 开源。保留原始版权和许可证声明后,可以使用、复制、修改和分发。
SDT is open-sourced under the MIT License. You may use, copy, modify, and distribute it while retaining the original copyright and license notice.

sdt-skills (StopDisTrain/sdt-skills)

Searching Database…

What is this?SDT Skills is an open-source toolkit of 15 Agent Skills for Codex that cover researching, drafting, and quality-checking Xiaohongshu (Red) content, from account modeling through publish-ready HTML.
Is this a single prompt or a set of separate skills?It is 15 independently callable Skills plus 5 Python tools, not one long prompt. Each stage (research, benchmarking, topic generation, drafting, titling, QA, delivery) is its own module that can be invoked alone or chained by a router.
How do I install the Skills into Codex?Either ask Codex to use skill-installer to install every folder starting with 'sdt' under skills/ from this repo, or manually copy the desired Skill folders into ~/.codex/skills/ (keeping each SKILL.md) and reload Codex.
Do I need anything besides Codex to run this?You need Codex as the host agent to call the Skills, and Python for the five bundled deterministic tools (metric parsing, scoring, title validation, HTML rendering, read-only research wrapper).
Does it always run the full research-to-publish pipeline?No, the full 10-stage workflow only runs if you explicitly ask for end-to-end production; a single request like a title fix or benchmark check is routed directly to that one Skill.
Who is this built for?Content creators and editorial teams who publish on Xiaohongshu and want a repeatable, auditable workflow instead of a single ad-hoc prompt for research, drafting, and QA.
Does it only run on a specific OS?No, since it's just Skill folders plus Python scripts copied into Codex's skills directory, it works the same on macOS, Linux, and Windows wherever Codex runs.
Does it ever touch or publish my Xiaohongshu account?No. The research tool is read-only and explicitly cannot like, save, comment, publish, delete, or export login credentials, and local account data never leaves your machine into the public repo.
What do the 5 Python tools actually guarantee?They handle the parts that need consistency: normalizemetrics.py parses mixed-format numbers like 3.2万, scoretopics.py applies bounded scoring with hard-rejection rules, validatetitles.py checks title length and risk signals, renderwechathtml.py produces reproducible inline-style HTML, and redbookreadonly.py enforces a command allow-list with no credential export.
Why not just use one big prompt for everything?A single long prompt can produce research, topics, and a draft at once, but a weak title then forces a full rerun and failures have no clear owner. SDT splits the work so a bad title only triggers the titling Skill, not the whole pipeline.
What happens to facts the research Skill can't confirm?Unconfirmed facts are explicitly marked 'awaiting confirmation' rather than invented, and are stored separately from confirmed facts and evidence-based inferences.
What does CI actually check on every push?A validator checks metadata for all 15 Skills and Agent UI metadata, runs the four tools' built-in self-tests, verifies the Xiaohongshu read-only guardrails, and confirms no private artifacts (raw research, screenshots, generated docs) leaked into the public repo.
Size
0.1 MB
Stars
309
Updated
CommitAug 25
Age
1mo
Commits · 90 Days