gr-readme

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

GitHub README Writing System

GitHub README 写作系统

Built from taking AFFiNE from 0 to 60K stars. The README didn't just describe the product — it was the product for the first 30 days.
— (AFFiNE case, Iris Wei @WeiYipei, ep01/ep03/ep06)

这套系统源自AFFiNE从0到6万Star的成长实践。在项目最初30天里,README不仅是产品描述——它本身就是产品。
—(AFFiNE案例,Iris Wei @WeiYipei,第01/03/06期)

双重视角 / Dual Frame: README Writing = Skill Description Writing

双重视角 / Dual Frame:README撰写 = 技能描述撰写

One insight from Claude Code Skills that applies directly to README craft:
"Claude uses the
description
field to decide when to apply the skill."
A README's tagline works by exactly the same logic: a one-sentence description that makes the right reader self-select in. If Claude can't tell from your skill's description when to use it, visitors can't tell from your README why they need it.
The table below maps the parallel:
README elementSkill frontmatter fieldShared principle
Tagline (first line)
description
first sentence
Specific, scannable, triggers the right reader
Sub-description (2–3 sentences)
description
body
Problem + solution + differentiator
Trigger phrases in README
when_to_use
Disambiguation — when to use this, not something else
Architecture/How it worksSupporting files (
reference.md
)
Detail on demand, not always in context
Quick Start commands
allowed-tools
+ shell blocks
Concrete, executable, verifiable
This frame is not a metaphor — it's a practical test. If you can't write a one-sentence tagline for your README that passes the same bar as a skill's
description
, the README needs more work.

Claude Code Skills中得到的一个可直接应用于README撰写的洞察:
"Claude会根据
description
字段来决定何时应用该技能。"
README的标语遵循完全相同的逻辑:用一句话描述让目标读者主动选择关注。如果Claude无法从你的技能描述中判断何时使用它,那么访客也无法从你的README中了解他们为什么需要这个项目。
下表展示了两者的对应关系:
README元素技能前置字段共同原则
标语(第一行)
description
第一句
具体、易扫描、触达目标读者
副标题(2-3句)
description
主体
问题+解决方案+差异化优势
README中的触发短语
when_to_use
明确适用场景——何时选择该项目而非其他
架构/工作原理支持文件(
reference.md
按需提供细节,不必在主内容中赘述
快速开始命令
allowed-tools
+ shell代码块
具体、可执行、可验证
这并非比喻——而是一个实用的测试标准。如果你无法为README写出一句符合技能
description
要求的标语,那么这份README还需要改进。

核心原则 / Core Principles

核心原则 / Core Principles

Principle 1: README is your product's first landing page

原则1:README是产品的首个落地页

The README has one job: convert a GitHub visitor into a star, fork, or install within 3 seconds of first scroll. Everything else is secondary.
README只有一个核心目标:让GitHub访客在首次滚动的3秒内转化为Star、Fork或安装用户。其他所有内容都是次要的。

Principle 2: A weak product can still have a great README

原则2:产品不完善也能拥有优秀的README

AFFiNE 开源时产品还是「套壳」demo,README 写对了照样火。 — (AFFiNE case, Iris Wei @WeiYipei, ep03/ep06)
The README is your narrative. You're selling the vision and the pain point solved, not the current feature set. A product at 30% completion with a clear "why you need this" README will outperform a finished product with a feature dump.
AFFiNE开源时产品还是「套壳」demo,README写对了照样火。 —(AFFiNE案例,Iris Wei @WeiYipei,第03/06期)
README是你的叙事载体。你要推销的是愿景和解决的痛点,而非当前的功能集合。一个完成度30%但能清晰传达「你为什么需要它」的README,表现会优于一个功能完备但只是堆砌功能的README。

Principle 3: English-first, first screen readable in <3 seconds

原则3:英文优先,首屏内容3秒内可读

README 英文主,首屏 <3 秒读懂。 — (AFFiNE case, Iris Wei @WeiYipei, ep03)
The first scroll of a GitHub page is ~600–800px. Everything above the fold must answer: What is this? Why does it matter? Who is it for?
README 英文主,首屏 <3 秒读懂。 —(AFFiNE案例,Iris Wei @WeiYipei,第03期)
GitHub页面的首次滚动高度约为600–800px。首屏以上的内容必须回答三个问题:这是什么?它为什么重要?它面向谁?

Principle 4: Specific, verifiable instructions beat generic claims

原则4:具体可验证的说明胜过泛泛之谈

"Use 2-space indentation" beats "Format code properly." "Run
npm test
before committing" beats "Test your changes."
Apply the same test to README copy:
  • "Works offline — no internet required, all data stored locally" ✅
  • "Powerful offline support" ❌
Every sentence in a README is an instruction to the reader's brain. Make it concrete enough to verify.

"使用2空格缩进"胜过"正确格式化代码"。 "提交前运行
npm test
"胜过"测试你的更改"。
将同样的标准应用于README文案:
  • "支持离线使用——无需联网,所有数据本地存储" ✅
  • "强大的离线支持" ❌
README中的每一句话都是给读者大脑的指令。要具体到可验证的程度。

README 结构框架 / README Structure Framework

README 结构框架 / README Structure Framework

Derived from analysis of insforge (agentic coding backend), dify (60K+ star LLM platform), and AFFiNE's 0→60K growth.
[Logo + Project Name]
[One-line Tagline]              ← most critical, non-skippable
[Badges]                        ← signals, not decoration
[Hero image / Demo video]       ← show product in <30 seconds
[What is this? 2–3 sentences]   ← first screen core
[Quick Start]                   ← shorter = better; just get it running
[Key Features]                  ← sorted by user pain, not tech checklist
[Architecture / How it works]   ← optional; use for complex projects
[Deployment options]            ← cloud / local / one-click
[Claude Code / AI Agent Integration] ← new section; see below
[Contributing]                  ← short, link to CONTRIBUTING.md
[Community & Support]           ← Discord / X / Discussions
[License]
[Star CTA GIF]                  ← ❗️ FIRST 3 SCREENS — inline with hero or after Quick Start
[Star History]                  ← social proof, bottom (optional extra)

该框架源自对insforge(智能编码后端)、dify(6万+Star的LLM平台)以及AFFiNE从0到6万Star成长历程的分析。
[Logo + 项目名称]
[一句话标语]              ← 最关键,不可省略
[徽章]                        ← 信号,而非装饰
[主视觉图 / 演示视频]       ← 30秒内展示产品
[项目介绍(2-3句)]   ← 首屏核心内容
[快速开始]                   ← 越短越好;快速启动项目
[核心功能]                  ← 按用户痛点排序,而非技术清单
[架构 / 工作原理]   ← 可选;适用于复杂项目
[部署选项]            ← 云端 / 本地 / 一键部署
[Claude Code / AI Agent集成] ← 新增板块;详见下文
[贡献指南]                  ← 简短,链接至CONTRIBUTING.md
[社区与支持]           ← Discord / X / Discussions
[许可证]
[Star号召GIF]                  ← ❗️ 前三屏内——与主视觉图并列或在快速开始之后
[Star历史]                  ← 社交证明,置于底部(可选附加内容)

首屏 3 秒法则 / The 3-Second First Screen Law

首屏3秒法则 / The 3-Second First Screen Law

The rule: Everything above the first scroll must answer three questions without requiring the reader to think.
QuestionWhere to answer
What is this?Tagline (1 sentence)
Why should I care?Sub-description or problem statement (2–3 sentences)
Is it real / trustworthy?Badges: stars, license, downloads, last commit
What insforge does right: Logo → one-line tagline → demo video → 3-sentence expansion. Immediately scannable. The video shows the product without words.
What dify does right: Hero image → minimal badge row → 1-paragraph description naming 7 specific features in plain language → immediate Quick Start.
Common failure mode: Verbose "About this project" paragraph before anything visual. Developers scan for signals, not introductions.

规则: 首屏以上的内容必须无需读者思考就能回答三个问题。
问题回答位置
这是什么?标语(一句话)
我为什么要关注?副标题或问题陈述(2-3句)
它真实可信吗?徽章:Star数、许可证、下载量、最后提交时间
insforge的正确做法: Logo → 一句话标语 → 演示视频 → 三句话展开说明。内容极易扫描,视频无需文字就能展示产品。
dify的正确做法: 主视觉图 → 极简徽章栏 → 一段用平实语言列出7个具体功能的描述 → 直接给出快速开始步骤。
常见错误模式: 在任何视觉元素之前先放冗长的「关于本项目」段落。开发者会扫描信号,而非通读介绍。

各板块写法指南 / Section-by-Section Writing Guide

各板块写法指南 / Section-by-Section Writing Guide

Section 1: Tagline

板块1:标语

这是整个 README 最重要的一行 / The single most important line in the README.
A great tagline does three things simultaneously:
  1. Names what the product is (category)
  2. Names who it's for (audience)
  3. Names the pain it kills (problem)
Tagline formula (pick one):
[Adjective] [category] for [audience]
→ "Open-source backend platform for AI coding agents"

[Category] without [pain point]
→ "Note-taking without the cloud lock-in"

[Familiar reference] + [key differentiator]
→ "Open source Notion alternative — offline-first, privacy-focused"

[Outcome verb phrase]
→ "Ship full-stack apps from your AI agent, end to end"
AFFiNE case:
Tagline: "Open source Notion alternative" 6 words hit 3 pain points: Notion offline unavailable, poor data export, privacy. — (Iris Wei @WeiYipei, ep01)
The tagline borrows Notion's brand awareness (no explanation needed), and "alternative" signals open-source + self-hostable + "same features without the things you hate" — all simultaneously.
Rules:
  • ≤ 12 words
  • No jargon requiring prior knowledge of your project
  • Must work without context — imagine someone sees only this one line
  • Never start with "A powerful..." or "An amazing..." — these signal the writer doesn't know what makes the product special
Connection to skill design: This is identical to the
description
field rule from Skills docs: "Put the key use case first." The first sentence is truncated in skill listings — and in GitHub search results.

这是整个README最重要的一行 / The single most important line in the README.
优秀的标语同时做到三点:
  1. 明确产品类别
  2. 明确目标受众
  3. 明确解决的痛点
标语公式(任选其一):
[形容词] [类别] 面向 [受众]
→ "面向AI编码Agent的开源后端平台"

[类别] 摆脱 [痛点]
→ "无需云锁定的笔记工具"

[熟悉的参照物] + [核心差异化优势]
→ "开源Notion替代方案——优先离线、注重隐私"

[成果动词短语]
→ "通过AI Agent端到端交付全栈应用"
AFFiNE案例:
标语:"开源Notion替代方案" 6个字击中3个痛点:Notion无法离线使用、数据导出不便、隐私问题。 —(Iris Wei @WeiYipei,第01期)
该标语借用了Notion的品牌认知度(无需额外解释),而「替代方案」则传达了开源、可自托管以及「拥有相同功能但没有你讨厌的缺点」的信息——所有这些都同时传递给了读者。
规则:
  • ≤12个字
  • 无需读者预先了解你的项目就能理解
  • 脱离上下文也能生效——想象有人只看到这一句话
  • 切勿以「一款强大的...」或「一款出色的...」开头——这表明作者不知道产品的独特之处
与技能设计的关联: 这与Skills文档
description
字段的规则完全一致:「将核心用例放在首位」。技能列表中会截断第一句——GitHub搜索结果也是如此。

Section 2: Hero Image / Demo Video

板块2:主视觉图 / 演示视频

Show before you tell.
A 30–60 second demo video reduces cognitive load by ~80%. If no video, a high-quality screenshot or GIF showing actual product use is non-negotiable for UI products.
For CLI / SDK tools: a
mermaid
architecture diagram + installation command is the equivalent.
Rules:
  • Video ≤ 60 seconds, captioned (non-English speakers are a large part of your audience)
  • Screenshot shows product in use, not empty state
  • Host on GitHub's own CDN — drag into the issue editor, not external CDN
  • Dark and light mode variants if supported

先展示,后说明。
一段30–60秒的演示视频能减少约80%的认知负荷。如果没有视频,高质量的产品实际使用截图或GIF对UI产品来说是必不可少的。
对于CLI / SDK工具:
mermaid
架构图 + 安装命令就是等效的视觉元素。
规则:
  • 视频≤60秒,添加字幕(非英语使用者是受众的重要组成部分)
  • 截图展示产品使用状态,而非空状态
  • 托管在GitHub自有CDN上——拖入issue编辑器,而非使用外部CDN
  • 如果支持,提供深色和浅色模式变体

Section 3: Quick Start

板块3:快速开始

This section's only job: get the user to a running instance as fast as possible.
bash
undefined
本板块唯一目标:让用户尽快启动运行实例。
bash
undefined

3–5 commands max. No explanations between commands.

最多3–5条命令。命令之间无需解释。

git clone https://github.com/yourorg/yourrepo cd yourrepo docker compose up -d
git clone https://github.com/yourorg/yourrepo cd yourrepo docker compose up -d

**Rules:**
- If setup takes >5 commands, the problem is onboarding, not the README
- Prerequisites go *above* the commands, not buried in a footnote
- Provide a cloud/hosted version link as an alternative — "Don't want to self-host? Try cloud.yourproject.com"
- The commands must actually work on a fresh machine. **Test this.**

**What dify does right:** Quick Start is literally the *second section* after the description. Minimum system requirements (CPU/RAM), then 4 commands. No architecture essay first. Get them running, then explain.

---

**规则:**
- 如果设置需要超过5条命令,问题出在入门流程,而非README
- 前置条件放在命令**上方**,而非隐藏在脚注中
- 提供云端/托管版本链接作为替代方案——「不想自托管?试试cloud.yourproject.com」
- 命令必须能在全新机器上正常运行。**务必测试。**

**dify的正确做法:** 快速开始是描述之后的**第二个板块**。先列出最低系统要求(CPU/RAM),然后给出4条命令。没有先讲架构长篇大论。先让用户启动项目,再进行解释。

---

Section 4: Key Features

板块4:核心功能

Sort by user pain, not technical implementation.
❌ Wrong (technical list):
- WebSocket support
- Plugin architecture
- REST API
- TypeScript SDK
✅ Right (pain-first):
- Works offline — no internet required, all data stored locally
- Export everything — Markdown, PDF, raw JSON, always your data
- Self-hostable — deploy to your own server in 5 minutes
- Plugin API — extend with your own tools
Rules:
  • ≤ 7 features in the main list. More than 7 signals "we don't know what we are."
  • Each bullet: pain point first, implementation detail second
  • Bold the key word — GitHub renders bold in feature lists; it's free hierarchy
  • If star count is high, mention it implicitly ("used by X developers") — social proof in the features section

按用户痛点排序,而非技术实现顺序。
❌ 错误示例(技术列表):
- WebSocket支持
- 插件架构
- REST API
- TypeScript SDK
✅ 正确示例(痛点优先):
- 支持离线使用——无需联网,所有数据本地存储
- 全量导出——Markdown、PDF、原始JSON,数据永远属于你
- 可自托管——5分钟内部署到自己的服务器
- 插件API——用自有工具扩展功能
规则:
  • 主列表中≤7个功能。超过7个意味着「我们不知道自己的核心价值是什么」。
  • 每个项目:先讲痛点,再讲实现细节
  • 加粗关键词——GitHub会在功能列表中渲染加粗样式;这是免费的层级设计
  • 如果Star数较高,可间接提及(「被X名开发者使用」)——社交证明融入功能板块

Section 5: Architecture / How It Works (Optional)

板块5:架构 / 工作原理(可选)

Include when:
  • Project has non-obvious component structure (backend platform, distributed system)
  • Developers need to understand architecture to decide whether to contribute
  • Targeting developers who will integrate, not just use
Rules:
  • Use
    mermaid
    — renders natively on GitHub. One diagram = 200 words.
  • Keep the diagram to ≤ 8 nodes
  • Put this section after Quick Start
mermaid
graph TD
    A[User / AI Agent] --> B[Your Product Core]
    B --> C[Service A]
    B --> D[Service B]
    B --> E[Service C]

在以下情况中添加:
  • 项目具有非直观的组件结构(后端平台、分布式系统)
  • 开发者需要理解架构才能决定是否贡献代码
  • 目标受众是会进行集成而非仅使用的开发者
规则:
  • 使用
    mermaid
    ——可在GitHub原生渲染。一张图抵得上200个字。
  • 图中节点≤8个
  • 将本板块放在快速开始之后
mermaid
graph TD
    A[用户 / AI Agent] --> B[你的产品核心]
    B --> C[服务A]
    B --> D[服务B]
    B --> E[服务C]

Section 6: Deployment Options

板块6:部署选项

Address all three developer modes: local dev, self-hosted production, cloud.
markdown
| Method | Link | When to use |
|--------|------|-------------|
| Cloud (hosted) | [yourproject.com](link) | Zero setup, try now |
| Docker Compose | [Quick Start](#quick-start) | Self-hosted, recommended |
| Railway / Render | [one-click deploy](link) | Self-hosted, no Docker |
| From source | [Dev Guide](link) | Contributing |
One-click deploy buttons (Railway, Render, Zeabur, Sealos) are high-signal trust indicators and reduce friction to zero for non-Docker users.

覆盖三种开发者模式:本地开发、自托管生产、云端。
markdown
| 方式 | 链接 | 使用场景 |
|--------|------|-------------|
| 云端(托管) | [yourproject.com](link) | 零配置,立即试用 |
| Docker Compose | [快速开始](#quick-start) | 自托管,推荐方案 |
| Railway / Render | [一键部署](link) | 自托管,无需Docker |
| 从源码构建 | [开发指南](link) | 贡献代码 |
一键部署按钮(Railway、Render、Zeabur、Sealos)是高可信度的信号,能为非Docker用户消除所有摩擦。

Section 7: Claude Code / AI Agent Integration ← New Section

板块7:Claude Code / AI Agent集成 ← 新增板块

Add this section if your project:
  • Can be used as a Claude Code skill or MCP plugin
  • Has a CLI that AI agents can invoke
  • Exposes an API that agentic workflows call
markdown
undefined
如果你的项目符合以下情况,请添加本板块:
  • 可作为Claude Code技能或MCP插件使用
  • 拥有AI Agent可调用的CLI
  • 暴露可供智能工作流调用的API
markdown
undefined

Claude Code / AI Agent Integration

Claude Code / AI Agent集成

Install as a skill (Claude Code): ``` npx skills add your-project-name ```
Or reference directly in your
CLAUDE.md
: ```markdown @your-project/README ```
For MCP integration: ```json { "mcpServers": { "your-project": { "command": "npx", "args": ["-y", "@your-org/your-mcp-server"] } } } ```

**Why this matters:**
- Claude Code skills load from `~/.claude/skills/` or `.claude/skills/` — your README is often the first thing the skill system reads to understand what the project does ([Skills docs](https://docs.anthropic.com/en/docs/claude-code/skills))
- The `/run` and `/verify` bundled skills infer launch from your README — a clear Quick Start section directly improves AI agent onboarding
- GEO (Generative Engine Optimization): structured, machine-readable README sections increase the probability that AI systems cite your project accurately

---
作为技能安装(Claude Code): ``` npx skills add your-project-name ```
或直接在你的
CLAUDE.md
中引用: ```markdown @your-project/README ```
MCP集成方式: ```json { "mcpServers": { "your-project": { "command": "npx", "args": ["-y", "@your-org/your-mcp-server"] } } } ```

**为什么这很重要:**
- Claude Code技能从`~/.claude/skills/`或`.claude/skills/`加载——你的README通常是技能系统了解项目用途的第一个文件([Skills文档](https://docs.anthropic.com/en/docs/claude-code/skills))
- 内置的`/run`和`/verify`技能会从你的README中推断启动方式——清晰的快速开始板块直接提升AI Agent的入门体验
- GEO(生成引擎优化):结构化、机器可读的README板块能提高AI系统准确引用你的项目的概率

---

Section 8: Contributing

板块8:贡献指南

Keep short. Guide lives in
CONTRIBUTING.md
.
markdown
undefined
保持简短。详细指南放在
CONTRIBUTING.md
中。
markdown
undefined

Contributing

贡献指南

PRs welcome. See CONTRIBUTING.md for setup.
Questions? Join Discord or open a Discussion.

Do **not** put a full contributing guide in the README. It breaks reading flow and buries the CTA in prose.

---
欢迎提交PR。详见CONTRIBUTING.md中的设置说明。
有疑问?加入Discord或发起Discussion

切勿在README中放入完整的贡献指南。这会打断阅读流程,将号召行动的内容淹没在冗长的文字中。

---

Section 9: Community & Support

板块9:社区与支持

Match channel to action type — don't list channels without explaining purpose:
markdown
undefined
根据操作类型匹配渠道——不要只列出渠道而不说明用途:
markdown
undefined

Community & Support

社区与支持

  • Discord — questions, help, show what you built
  • GitHub Discussions — feature requests, long-form questions
  • GitHub Issues — bugs only
  • X / Twitter — announcements, follow for updates
  • Email — security issues, enterprise inquiries

---
  • Discord — 提问、求助、展示你的作品
  • GitHub Discussions — 功能请求、长问题讨论
  • GitHub Issues — 仅用于提交Bug
  • X / Twitter — 公告、关注获取更新
  • 邮件 — 安全问题、企业咨询

---

Section 10: Star History Chart

板块10:Star历史图表

Put at the bottom. Social proof, not navigation.
markdown
[![Star History Chart](https://api.star-history.com/svg?repos=yourorg/yourrepo&type=Date)](https://star-history.com/#yourorg/yourrepo&Date)
A steep upward curve signals "this project is real." Investors use this too.
投资人专门写爬虫查 Star 真假,说明真实口碑就是你最有力的信号。 — (AFFiNE case, Iris Wei @WeiYipei, ep03)

放在底部。作为社交证明,而非导航元素。
markdown
[![Star History Chart](https://api.star-history.com/svg?repos=yourorg/yourrepo&type=Date)](https://star-history.com/#yourorg/yourrepo&Date)
陡峭的上升曲线表明「这个项目是真实可信的」。投资者也会参考这一数据。
投资人专门写爬虫查Star真假,说明真实口碑就是你最有力的信号。 —(AFFiNE案例,Iris Wei @WeiYipei,第03期)

Section 11: Star CTA GIF — The Most Underused Conversion Trick

板块11:Star号召GIF — 最被低估的转化技巧

A short GIF showing the mouse clicking the ★ Star button converts passers-by into stargazers. It sounds trivial. It works.
Why it works:
  • Removes ambiguity: many first-time visitors don’t know where to click to star
  • Creates micro-commitment: watching the animation primes the action
  • Feels human, not spammy — unlike a bold "PLEASE STAR US" text block
How to make the GIF (3 options):
OptionToolTimeQuality
Screen record + convertQuickTime (Mac) + Gifox / LICEcap / ScreenToGif5 min★★★★
Browser extensionScreencastify or Loom → export GIF3 min★★★
Online recorderGiphy Capture (Mac)3 min★★★
What to record (exact steps):
  1. Open your repo in browser, zoom to 125%
  2. Slowly move mouse to the ★ Star button (top right area)
  3. Pause 1 second
  4. Click — let the animation play (star turns yellow)
  5. Total duration: 3–5 seconds, loop seamlessly
GIF specs:
  • Size: 400–600px wide, auto height
  • Duration: 3–5 seconds, looping
  • File size: keep under 1MB (GitHub CDN limit for smooth load)
  • Optimize with Ezgif if over 1MB
Placement in README: First 3 screens, not the bottom
❗️ Most repos bury the star CTA at the bottom. By then, 80%+ of visitors have already left. Put it where people actually see it.
Option A — Inline with Hero (recommended): Right after the tagline + badges, before Quick Start. Catches visitors while they’re still deciding whether to care.
markdown
undefined
一段展示鼠标点击★Star按钮的简短GIF能将路人转化为Star关注者。这听起来微不足道,但确实有效。
为什么有效:
  • 消除歧义:许多首次访客不知道点击哪里可以Star
  • 创造微承诺:观看动画会促进行动
  • 感觉人性化,而非垃圾信息——不像加粗的「请给我们Star」文本块
制作GIF的三种方式:
选项工具耗时质量
录屏+转换QuickTime(Mac)+ Gifox / LICEcap / ScreenToGif5分钟★★★★
浏览器扩展ScreencastifyLoom → 导出为GIF3分钟★★★
在线录制器Giphy Capture(Mac)3分钟★★★
录制步骤(精确操作):
  1. 在浏览器中打开你的仓库,缩放至125%
  2. 缓慢将鼠标移至★Star按钮(右上角区域)
  3. 停顿1秒
  4. 点击——让动画播放完成(Star变黄)
  5. 总时长:3–5秒,无缝循环
GIF规格:
  • 尺寸:宽400–600px,高度自适应
  • 时长:3–5秒,循环播放
  • 文件大小:控制在1MB以内(GitHub CDN流畅加载限制)
  • 如果超过1MB,使用Ezgif优化
在README中的放置位置:前三屏内,而非底部
❗️ 大多数仓库将Star号召放在底部。此时80%以上的访客已经离开。 要放在人们实际能看到的地方。
选项A — 与主视觉图并列(推荐): 标语+徽章之后,快速开始之前。在访客仍在决定是否关注时抓住他们。
markdown
undefined

About

关于

Open source Notion alternative. [tagline...]
If this looks useful, star it — it helps others find the project.
Star this repo

**Option B — After Quick Start (second-best):**
After users successfully run the project, strike while the iron is hot.

```markdown
开源Notion替代方案。[标语...]
如果这个项目对你有用,请Star它 — 这有助于其他人发现项目。
Star本仓库

**选项B — 快速开始之后(次优选择):**
在用户成功运行项目后,趁热打铁。

```markdown

Quick Start

快速开始

bash
npm install yourproject
It works? ⭐ Star this repo — takes 2 seconds.
Star this repo

**Option C — Star History at the bottom (in addition to A or B, not instead):**

```markdown
bash
npm install yourproject
成功运行了吗?⭐ Star本仓库 — 只需2秒。
Star本仓库

**选项C — 底部的Star历史(作为A或B的补充,而非替代):**

```markdown

⭐ Star History

⭐ Star历史

Star History Chart

**Rule: always use A or B. C is optional extra.**

**Store the GIF in your repo:**
yourrepo/ └── assets/ └── star-demo.gif ← commit this

**Tone guidance:**
- ✅ `"If this project helped you, a star means a lot"`
- ✅ `"Star us to stay updated"`
- ❌ `"PLEASE GIVE US A STAR!!!"`
- ❌ `"Don’t forget to star!"` (implies obligation)

> The GIF does the asking so the text doesn’t have to.

---
Star History Chart

**规则:务必使用A或B。C是可选附加内容。**

**将GIF存储在仓库中:**
yourrepo/ └── assets/ └── star-demo.gif ← 提交该文件

**语气指导:**
- ✅ "如果这个项目帮到了你,Star对我们意义重大"
- ✅ "Star我们以获取更新"
- ❌ "请给我们Star!!!"
- ❌ "别忘了Star!"(暗示义务)

> GIF已经完成了请求的动作,所以文字无需过于直白。

---

Badge 使用原则 / Badge Usage Principles

徽章使用原则 / Badge Usage Principles

Badges are signals, not decoration. Each badge answers a developer question.
Badge typeQuestion answeredInclude?
License"Can I use this commercially?"Always
Stars"Is this popular / maintained?"Always
Last commit"Is this abandoned?"Yes
Build / CI status"Does it actually work?"Yes
Downloads (npm/docker/pypi)"Is anyone actually using this?"Yes if >1K
Code coverage"Is the code quality real?"Only if >70%
Version"What's stable?"Yes for libraries
"Made with X" partner badgesOmit unless required
Rules:
  • ≤ 8 badges on the first row. More = visual noise.
  • Group by meaning: identity → health → community
  • Never use a failing badge. A red CI badge is worse than no CI badge.

徽章是信号,而非装饰。每个徽章都要回答开发者的一个问题。
徽章类型回答的问题是否包含?
许可证"我可以商业使用吗?"始终包含
Star数"这个项目受欢迎/维护吗?"始终包含
最后提交时间"这个项目已经废弃了吗?"
构建/CI状态"它真的能运行吗?"
下载量(npm/docker/pypi)"真的有人在使用吗?"如果超过1K则包含
代码覆盖率"代码质量可靠吗?"仅当超过70%时包含
版本"稳定版本是什么?"库类项目包含
"基于X构建"合作徽章除非必要否则省略
规则:
  • 第一行≤8个徽章。过多会造成视觉噪音。
  • 按意义分组:身份 → 健康状态 → 社区
  • 切勿使用失败状态的徽章。红色CI徽章比没有CI徽章更糟糕。

常见死亡模式 / Anti-patterns (README Death Modes)

常见死亡模式 / Anti-patterns (README Death Modes)

❌ Death Mode 1: Feature Dumping Without Problem Framing

❌ 死亡模式1:无问题背景的功能堆砌

markdown
Features:
- Real-time collaboration
- Markdown support
- Plugin system
- REST API
- Mobile app
- Dark mode
Tells me nothing about who this is for or why I need it.
Fix: Lead with the pain. "If you've ever lost work because [X happened], MyApp solves that."

markdown
功能:
- 实时协作
- Markdown支持
- 插件系统
- REST API
- 移动应用
- 深色模式
这完全没有告诉我它面向谁,以及我为什么需要它。
修复方案: 从痛点入手。"如果你曾因为[X问题]丢失工作,MyApp能解决这个问题。"

❌ Death Mode 2: Burying Quick Start

❌ 死亡模式2:快速开始被埋没

Quick Start below the second scroll = 60% of developers already gone.
Fix: Quick Start is section 2 or 3. Maximum.

快速开始在第二屏以下意味着60%的开发者已经离开。
修复方案: 快速开始是第2或第3板块。最多不能超过这个位置。

❌ Death Mode 3: Generic Tagline

❌ 死亡模式3:泛泛的标语

A powerful, flexible, and extensible framework for modern developers.
"Powerful," "flexible," "extensible" — every project makes these claims. This is noise.
Fix: Name the specific pain. Name the specific category. Name the specific user.
Prompt engineering parallel: Per Anthropic's guidance, vague instructions ("Format code properly") produce inconsistent results. Same principle: vague taglines produce inconsistent reader behavior.

面向现代开发者的强大、灵活、可扩展框架。
「强大」、「灵活」、「可扩展」——每个项目都这样宣称。这只是噪音。
修复方案: 明确具体的痛点。明确具体的类别。明确具体的用户。
提示工程类比: 根据Anthropic的指导,模糊的指令("正确格式化代码")会产生不一致的结果。同样的原则:模糊的标语会导致读者行为不一致。

❌ Death Mode 4: No Visual Above the Fold

❌ 死亡模式4:首屏无视觉元素

Wall of text → wall of text → wall of text. Developers scan; they don't read.
Fix: Hero image or demo GIF immediately after the tagline. Non-negotiable for UI products.

文字墙→文字墙→文字墙。开发者会扫描内容,而非通读。
修复方案: 标语之后立即放置主视觉图或演示GIF。UI产品必不可少。

❌ Death Mode 5: README Only in Native Language

❌ 死亡模式5:仅使用母语的README

README 英文主,首屏 <3 秒读懂。 — (AFFiNE case, Iris Wei @WeiYipei, ep03)
Chinese-only, Japanese-only README caps addressable audience. GitHub Trending, HN, Reddit — all English-first platforms.
Fix: English is the primary document. Translated versions via badges or
/i18n/
folder.

README 英文主,首屏 <3 秒读懂。 —(AFFiNE案例,Iris Wei @WeiYipei,第03期)
仅中文、仅日文的README会限制受众范围。GitHub Trending、HN、Reddit——都是英文优先的平台。
修复方案: 英文作为主要文档。通过徽章或
/i18n/
文件夹提供翻译版本。

❌ Death Mode 6: Contributing Section as Wall of Text

❌ 死亡模式6:贡献指南成文字墙

If
## Contributing
runs for 400 lines in the README, it's buried in prose and no one reads it.
Fix: One paragraph + link to
CONTRIBUTING.md
. README is a landing page.

如果
## Contributing
在README中占了400行,那么它会被冗长的文字淹没,没人会读。
修复方案: 一段文字 + 链接至
CONTRIBUTING.md
。README是落地页。

❌ Death Mode 7: Treating Stars as Vanity Metrics

❌ 死亡模式7:将Star视为虚荣指标

Stars are distribution signals. GitHub Trending, search ranking, investor due diligence — all use star velocity as a legitimacy proxy.
AFFiNE hit 6K stars in week 1, 10K in month 1, 60K+ total. 28 consecutive GitHub Trending appearances, driven by two weeks of obsessive community engagement. — (Iris Wei @WeiYipei, ep01/ep06)
A README that converts well drives star velocity → drives trending → drives more stars. README is the entry point of this loop.

Star是传播信号。GitHub Trending、搜索排名、投资人尽职调查——都用Star增长速度作为合法性的参考。
AFFiNE第一周获得6000个Star,第一个月10000个,总Star数超过60000。连续28次登上GitHub Trending,前两周的密集社区互动是主要驱动力。 —(Iris Wei @WeiYipei,第01/06期)
转化率高的README会推动Star增长速度→登上Trending→获得更多Star。README是这个循环的入口。

❌ Death Mode 8: No AI Agent / Claude Code Section (2025+)

❌ 死亡模式8:无AI Agent / Claude Code板块(2025+)

As of 2025, a meaningful portion of GitHub visitors are AI coding agents or users who will try to use your project through Claude Code, Cursor, or similar tools. A README that doesn't include an AI agent integration section is missing a fast-growing install path.

截至2025年,相当一部分GitHub访客是AI编码Agent或会通过Claude Code、Cursor等工具尝试使用你的项目的用户。没有AI Agent集成板块的README会错过一个快速增长的安装渠道。

AFFiNE 核心数据 / AFFiNE Data Points for Context

AFFiNE核心数据 / AFFiNE Data Points for Context

All sourced from Iris Wei (@WeiYipei) podcast episodes (ep01 / ep03 / ep06):
MetricValueSource
Stars, week 16,000ep01/ep03
Stars, month 110,000ep01
Stars, total60,000+ep01/ep03
GitHub Trending appearances28 consecutiveep06
Tagline strategy"Open source Notion alternative" — targeted offline / data export / privacy painep01
Product state at launch"套壳" demo (wrapper demo, incomplete)ep03/ep06
What drove trending staysObsessive community reply for first 2 weeksep06
What drove initial launchDev docs + traffic funnels + content prepared pre-launchep01
Investor signalInvestors wrote crawlers to verify star authenticityep03
Key insight: Product was a wrapper demo at launch. The README hit the right pain points. Result: 6,000 stars in week 1. README is not a product feature — it is the marketing layer, and it works independently of product completeness.

所有数据来自Iris Wei (@WeiYipei)的播客节目(第01/03/06期):
指标数值来源
第一周Star数6,000第01/03期
第一个月Star数10,000第01期
总Star数60,000+第01/03期
GitHub Trending上榜次数连续28次第06期
标语策略"开源Notion替代方案"——针对离线/数据导出/隐私痛点第01期
发布时产品状态"套壳"demo(包装演示,未完成)第03/06期
维持Trending的关键前两周密集回复社区第06期
初始发布驱动力开发文档 + 流量漏斗 + 发布前准备的内容第01期
投资人信号投资人编写爬虫验证Star真实性第03期
核心洞察: 发布时产品只是一个套壳demo。但README击中了正确的痛点。结果:第一周获得6000个Star。README不是产品功能——它是营销层,独立于产品完成度发挥作用。

发布前自检 Checklist / Pre-publish Checklist

发布前自检清单 / Pre-publish Checklist

Run before every README publish or major update.
每次发布README或进行重大更新前都要检查。

First screen (no scroll required)

首屏(无需滚动)

  • Logo / project name visible and clear
  • Tagline ≤ 12 words, answers: what + who + pain
  • Hero image, GIF, or demo video within first screen
  • Badge row present, ≤ 8 badges
  • No wall of text before any visual element
  • Logo/项目名称清晰可见
  • 标语≤12个字,回答:是什么+面向谁+解决什么痛点
  • 首屏内有主视觉图、GIF或演示视频
  • 有徽章栏,≤8个徽章
  • 任何视觉元素之前没有文字墙

Content

内容

  • Quick Start is in the top 3 sections
  • Quick Start has ≤ 5 commands and works on a fresh machine
  • Features sorted by user pain, not technical implementation
  • Each feature bullet leads with benefit, not mechanism
  • Contributing section ≤ 1 paragraph + link to CONTRIBUTING.md
  • 快速开始位于前3个板块
  • 快速开始≤5条命令,且能在全新机器上运行
  • 功能按用户痛点排序,而非技术实现顺序
  • 每个功能项目先讲收益,再讲机制
  • 贡献指南≤1段文字 + 链接至CONTRIBUTING.md

Language & tone

语言与语气

  • Primary language is English
  • No "powerful," "flexible," "amazing," "robust" — replace with specifics
  • No "we believe in open source" preamble — cut to the point
  • Tagline does not start with "A" or "An"
  • 主要语言为英文
  • 没有「强大的」、「灵活的」、「出色的」、「健壮的」——替换为具体描述
  • 没有「我们相信开源」之类的开场白——开门见山
  • 标语不以「一个」或「一款」开头

Trust signals

信任信号

  • License badge present
  • CI / build status badge present and passing
  • Star history chart at the bottom
  • Star CTA GIF in first 3 screens (assets/star-demo.gif, <1MB, 3–5s loop) — NOT at the bottom
  • Discord / community link in the README
  • If star count >500, visible in badges
  • 有许可证徽章
  • 有CI/构建状态徽章且状态为通过
  • 底部有Star历史图表
  • 前三屏内有Star号召GIF(assets/star-demo.gif,<1MB,3–5秒循环)——不要放在底部
  • README中有Discord/社区链接
  • 如果Star数>500,在徽章中显示

Technical

技术细节

  • All links tested (no 404s)
  • Images hosted on GitHub CDN (not external)
  • mermaid
    diagrams render correctly in GitHub preview
  • One-click deploy buttons tested (if applicable)
  • README renders correctly on mobile (check GitHub mobile)
  • 所有链接已测试(无404错误)
  • 图片托管在GitHub CDN(非外部)
  • mermaid
    图表在GitHub预览中能正确渲染
  • 一键部署按钮已测试(如果有)
  • README在移动端能正确渲染(检查GitHub移动端)

AI-era additions

AI时代新增项

  • skill-ready: Is there a clear
    npx skills add
    or MCP install command?
  • GEO-ready: Does the README have structured, machine-readable sections (tables, headers, code blocks) that AI systems can cite accurately?
  • Agent-friendly Quick Start: Can Claude Code's
    /run
    skill infer the launch command from your README without a custom skill setup?

  • 技能就绪: 是否有清晰的
    npx skills add
    或MCP安装命令?
  • GEO就绪: README是否有AI系统能准确引用的结构化、机器可读板块(表格、标题、代码块)?
  • Agent友好的快速开始: Claude Code的
    /run
    技能无需自定义技能设置就能从你的README中推断启动命令吗?

快速诊断 / Quick Diagnosis

快速诊断 / Quick Diagnosis

2026 activation gate

2026激活门槛

A README is an activation surface, not a brochure. The first screen should connect a crisp promise to a visible demo and the shortest runnable path. Track
README visit → install/start → first successful outcome → return
, with dated cohorts. If users star but cannot reach the first outcome in roughly three minutes, improve prerequisites, copy-paste commands, expected output, troubleshooting, and integration examples before adding more launch traffic. Keep benchmarks dated and label self-reported evidence.
When someone sends you a README to review, run through this in order:
  1. Read only the first screen (simulate no scroll). What do you know about the product? Who it's for? Why it matters? If you can't answer all three, the tagline or hero section needs rewriting.
  2. Find Quick Start. Count which section number it is. If ≥ 5, it needs to move up.
  3. Read the tagline aloud. Does it sound like a human pitch, or a feature list? If the latter, rewrite using the pain-first formula.
  4. Count the features. If >7 bullets, ask: which 3 make someone install this? Keep those, cut the rest.
  5. Look for walls of text. Any paragraph >5 lines above the Contributing section is probably explaining something a diagram or demo does better.
  6. Check language. Is the primary language English?
  7. Check AI integration. Is there a Claude Code / AI agent section? Does the Quick Start work for automated install? (New in 2025.)

README是激活界面,而非宣传册。首屏应将清晰的承诺与可见的演示以及最短的运行路径联系起来。跟踪
README访问→安装/启动→首次成功结果→返回
的流程,按日期分组。如果用户Star了项目但无法在大约三分钟内达到首次成功结果,在增加流量前先改进前置条件、复制粘贴命令、预期输出、故障排除和集成示例。保留带日期的基准,并标注自我报告的证据。
当有人让你审核README时,按以下顺序检查:
  1. 只读首屏(模拟不滚动)。 你对产品了解多少?它面向谁?为什么重要?如果无法回答这三个问题,标语或主视觉板块需要重写。
  2. 找到快速开始。 数一下它是第几个板块。如果≥5,需要上移。
  3. 大声朗读标语。 听起来像真人推销,还是功能列表?如果是后者,用痛点优先的公式重写。
  4. 数功能数量。 如果超过7个项目,问:哪3个会让用户安装它?保留这3个,删除其余的。
  5. 寻找文字墙。 贡献板块之前任何超过5行的段落,可能用图表或演示说明效果更好。
  6. 检查语言。 主要语言是英文吗?
  7. 检查AI集成。 有Claude Code/AI Agent板块吗?快速开始适合自动安装吗?(2025年新增。)

References

参考资料

Claude Code 官方文档 / Claude Code Official Docs

Claude Code官方文档 / Claude Code Official Docs

Anthropic 课程 / Courses

Anthropic课程 / Courses

提示工程 / Prompt Engineering

提示工程 / Prompt Engineering

社区资源 / Community

社区资源 / Community

案例 README / Case Study READMEs

案例README / Case Study READMEs

  • AFFiNE — 0→60K stars case study (primary reference)
  • Dify — 60K+ star LLM platform, aggressive Quick Start placement
  • InsForge — agentic coding backend, clean tagline + mermaid architecture

By Iris (生姜 Iris) · ex-COO @ AFFiNE (0 → 60k★) For overall OSS growth strategy → use
gr-oss-marketing
or
gingiris-opensource
For README writing specifically → this is the skill
  • AFFiNE — 0→6万Star案例研究(主要参考)
  • Dify — 6万+Star的LLM平台,快速开始位置醒目
  • InsForge — 智能编码后端,标语简洁 + mermaid架构图清晰

作者:Iris(生姜 Iris)· 前AFFiNE COO(0 → 6万★) 如需整体开源增长策略 → 使用
gr-oss-marketing
gingiris-opensource
如需专门的README撰写指导 → 本技能适用