GitHub README Writing System

🇺🇸 GitHub README Writing System — Craft a README that converts visitors to stars in <3 seconds.

How to install

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/gr-readme, including the files SKILL.md points to.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit Gingiris-1031/gingiris-skills/skills/gr-readme#main ~/.claude/skills/gr-readme

For one project only, change the path to .claude/skills/gr-readme. This skill also uses reference.md, CONTRIBUTING.md — copying SKILL.md alone won't be enough. See the folder on GitHub.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of GitHub README Writing System

Show the full text722 lines
gr-readme/SKILL.md722 lines · 28.6 KB
Outline
RawView on GitHub
namedescriptionwhen_to_usetagscontextallowed-tools
gr-readme| 🇺🇸 GitHub README Writing System — Craft a README that converts visitors to stars in <3 seconds. Proven structure from AFFiNE's 0→60K star journey: tagline engineering, first-screen law, section-by-section copywriting guide, Claude Code integration section, anti-patterns, and a pre-publish checklist. Use when you need to write or rewrite a specific README file. 🇨🇳 GitHub README 写作系统 — 打造 3 秒内把访客转化为 star 的 README。来自 AFFiNE 0→60K star 实战:tagline 工程、首屏法则、逐节文案指南、Claude Code 集成板块、反模式、发布前自检清单。需要写或改一个具体 README 文件时使用。 🇯🇵 GitHub README 作成システム — 3秒以内にビジターをスターに変えるREADMEを作る。AFFiNE 0→60Kスター実績から: タグライン設計、ファーストスクリーン法則、セクション別ライティングガイド、Claude Codeインテグレーション、アンチパターン、公開前チェックリスト。 🇰🇷 GitHub README 작성 시스템 — 3초 안에 방문자를 스타로 전환하는 README 작성법. AFFiNE 0→60K 스타 실전: 태그라인 설계, 첫 화면 법칙, 섹션별 카피라이팅 가이드, Claude Code 통합 섹션, 안티패턴, 게시 전 체크리스트. Triggers: "write README" | "README template" | "GitHub README" | "project description" | "tagline" | "open source README" | "README structure" | "README review" | "fix README" | "rewrite README" | "README写作" | "写README" | "README模板" | "项目介绍" | "开源项目文案" | "改README" | "README检查" | "README 구조" | "README 작성" | "README 검토" | "READMEの書き方" | "READMEレビュー| Use this skill when the task is to WRITE or REWRITE a specific README file: drafting taglines, structuring sections, copywriting feature descriptions, fixing a weak README, reviewing a draft before publishing. NOT for: overall open-source growth strategy, choosing launch channels, Show HN tactics, star-farming prevention, KOL outreach, or 6-month OSS growth loops — those belong to gr-oss-marketing or gingiris-opensource. One-line distinction: gr-readme = writing/editing the document itself gr-oss-marketing / gingiris-opensource = the entire growth strategy the document lives inside Handoff rule: If the request also asks for competitor research, comparison content, launch distribution, partner/sponsor outreach, or backlinks, finish the README artifact here and route those deliverables to gr-competitor, gr-oss-marketing, or gr-backlinks. Do not pretend the README alone produced campaign reach. - github-readme - open-source - documentation - copywriting - developer-marketing - tagline - developer-tools - oss - readme-writing - readme-structure - readme-review - open-source-docs - landing-page - ai-agent-integration - claude-codeforkRead Edit Write WebSearch

GitHub README Writing System

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)


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

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 element Skill frontmatter field Shared 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 works Supporting 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.


核心原则 / Core Principles

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

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.

Principle 2: A weak product can still have a great 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.

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

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?

Principle 4: Specific, verifiable instructions beat generic claims

From Anthropic prompt engineering and CLAUDE.md effective instructions:

"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.


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)

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

The rule: Everything above the first scroll must answer three questions without requiring the reader to think.

Question Where 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.


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

Section 1: Tagline

这是整个 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.


Section 2: Hero Image / Demo Video

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

Section 3: Quick Start

This section's only job: get the user to a running instance as fast as possible.

# 3–5 commands max. No explanations between commands.
git clone https://github.com/yourorg/yourrepo
cd yourrepo
docker compose up -d
# → open http://localhost:3000

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.


Section 4: Key Features

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

Section 5: Architecture / How It Works (Optional)

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
graph TD
    A[User / AI Agent] --> B[Your Product Core]
    B --> C[Service A]
    B --> D[Service B]
    B --> E[Service C]

Section 6: Deployment Options

Address all three developer modes: local dev, self-hosted production, cloud.

| 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.


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

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
## Claude Code / AI Agent Integration

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)
  • 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

Section 8: Contributing

Keep short. Guide lives in CONTRIBUTING.md.

## Contributing

PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for setup.

Questions? Join [Discord](link) or open a [Discussion](link).

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


Section 9: Community & Support

Match channel to action type — don't list channels without explaining purpose:

## 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

Section 10: Star History Chart

Put at the bottom. Social proof, not navigation.

[![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)


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

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):

Option Tool Time Quality
Screen record + convert QuickTime (Mac) + Gifox / LICEcap / ScreenToGif 5 min ★★★★
Browser extension Screencastify or Loom → export GIF 3 min ★★★
Online recorder Giphy 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.

## About

Open source Notion alternative. [tagline...]

⭐ **If this looks useful, star it** — it helps others find the project.

![Star this repo](./assets/star-demo.gif)

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

## 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
## ⭐ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=yourorg/yourrepo&type=Date)](https://star-history.com/#yourorg/yourrepo&Date)

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.


Badge 使用原则 / Badge Usage Principles

Badges are signals, not decoration. Each badge answers a developer question.

Badge type Question answered Include?
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 badges — Omit 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.

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

❌ Death Mode 1: Feature Dumping Without Problem Framing
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."


❌ Death Mode 2: Burying Quick Start

Quick Start below the second scroll = 60% of developers already gone.

Fix: Quick Start is section 2 or 3. Maximum.


❌ Death Mode 3: Generic Tagline
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.


❌ Death Mode 4: No Visual Above the Fold

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.


❌ Death Mode 5: README Only in Native Language

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.


❌ Death Mode 6: Contributing Section as Wall of Text

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.


❌ Death Mode 7: Treating Stars as Vanity Metrics

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.


❌ Death Mode 8: No AI Agent / Claude Code Section (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.

Fix: Add Section 7: Claude Code / AI Agent Integration.


AFFiNE 核心数据 / AFFiNE Data Points for Context

All sourced from Iris Wei (@WeiYipei) podcast episodes (ep01 / ep03 / ep06):

Metric Value Source
Stars, week 1 6,000 ep01/ep03
Stars, month 1 10,000 ep01
Stars, total 60,000+ ep01/ep03
GitHub Trending appearances 28 consecutive ep06
Tagline strategy "Open source Notion alternative" — targeted offline / data export / privacy pain ep01
Product state at launch "套壳" demo (wrapper demo, incomplete) ep03/ep06
What drove trending stays Obsessive community reply for first 2 weeks ep06
What drove initial launch Dev docs + traffic funnels + content prepared pre-launch ep01
Investor signal Investors wrote crawlers to verify star authenticity ep03

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.


发布前自检 Checklist / Pre-publish Checklist

Run before every README publish or major update.

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
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
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
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)
AI-era additions
  • 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?

快速诊断 / Quick Diagnosis

2026 activation gate

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.)


References

Claude Code 官方文档 / Claude Code Official Docs
Anthropic 课程 / Courses
提示工程 / Prompt Engineering
社区资源 / Community
案例 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

1---
2name: gr-readme
3description: |
4 🇺🇸 GitHub README Writing System — Craft a README that converts visitors to stars in <3 seconds. Proven structure from AFFiNE's 0→60K star journey: tagline engineering, first-screen law, section-by-section copywriting guide, Claude Code integration section, anti-patterns, and a pre-publish checklist. Use when you need to write or rewrite a specific README file.
5 
6 🇨🇳 GitHub README 写作系统 — 打造 3 秒内把访客转化为 star 的 README。来自 AFFiNE 0→60K star 实战:tagline 工程、首屏法则、逐节文案指南、Claude Code 集成板块、反模式、发布前自检清单。需要写或改一个具体 README 文件时使用。
7 
8 🇯🇵 GitHub README 作成システム — 3秒以内にビジターをスターに変えるREADMEを作る。AFFiNE 0→60Kスター実績から: タグライン設計、ファーストスクリーン法則、セクション別ライティングガイド、Claude Codeインテグレーション、アンチパターン、公開前チェックリスト。
9 
10 🇰🇷 GitHub README 작성 시스템 — 3초 안에 방문자를 스타로 전환하는 README 작성법. AFFiNE 0→60K 스타 실전: 태그라인 설계, 첫 화면 법칙, 섹션별 카피라이팅 가이드, Claude Code 통합 섹션, 안티패턴, 게시 전 체크리스트.
11 
12 Triggers: "write README" | "README template" | "GitHub README" | "project description" | "tagline" | "open source README" | "README structure" | "README review" | "fix README" | "rewrite README" | "README写作" | "写README" | "README模板" | "项目介绍" | "开源项目文案" | "改README" | "README检查" | "README 구조" | "README 작성" | "README 검토" | "READMEの書き方" | "READMEレビュー"
13 
14when_to_use: |
15 Use this skill when the task is to WRITE or REWRITE a specific README file:
16 drafting taglines, structuring sections, copywriting feature descriptions,
17 fixing a weak README, reviewing a draft before publishing.
18 
19 NOT for: overall open-source growth strategy, choosing launch channels, Show HN
20 tactics, star-farming prevention, KOL outreach, or 6-month OSS growth loops
21 — those belong to gr-oss-marketing or gingiris-opensource.
22 
23 One-line distinction:
24 gr-readme = writing/editing the document itself
25 gr-oss-marketing / gingiris-opensource = the entire growth strategy the document lives inside
26 
27 Handoff rule:
28 If the request also asks for competitor research, comparison content, launch distribution,
29 partner/sponsor outreach, or backlinks, finish the README artifact here and route those
30 deliverables to gr-competitor, gr-oss-marketing, or gr-backlinks. Do not pretend the README
31 alone produced campaign reach.
32 
33tags:
34 - github-readme
35 - open-source
36 - documentation
37 - copywriting
38 - developer-marketing
39 - tagline
40 - developer-tools
41 - oss
42 - readme-writing
43 - readme-structure
44 - readme-review
45 - open-source-docs
46 - landing-page
47 - ai-agent-integration
48 - claude-code
49 
50context: fork
51 
52allowed-tools: Read Edit Write WebSearch
53---
54 
55# GitHub README Writing System
56 
57> 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.
58>
59> — (AFFiNE case, Iris Wei @WeiYipei, ep01/ep03/ep06)
60 
61---
62 
63## 双重视角 / Dual Frame: README Writing = Skill Description Writing
64 
65One insight from [Claude Code Skills](https://docs.anthropic.com/en/docs/claude-code/skills) that applies directly to README craft:
66 
67> "Claude uses the `description` field to decide when to apply the skill."
68 
69A 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.
70 
71The table below maps the parallel:
72 
73| README element | Skill frontmatter field | Shared principle |
74|---------------|------------------------|-----------------|
75| Tagline (first line) | `description` first sentence | Specific, scannable, triggers the right reader |
76| Sub-description (2–3 sentences) | `description` body | Problem + solution + differentiator |
77| Trigger phrases in README | `when_to_use` | Disambiguation — when to use *this*, not something else |
78| Architecture/How it works | Supporting files (`reference.md`) | Detail on demand, not always in context |
79| Quick Start commands | `allowed-tools` + shell blocks | Concrete, executable, verifiable |
80 
81This 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.
82 
83---
84 
85## 核心原则 / Core Principles
86 
87### Principle 1: README is your product's first landing page
88 
89The README has one job: convert a GitHub visitor into a star, fork, or install within **3 seconds of first scroll**. Everything else is secondary.
90 
91### Principle 2: A weak product can still have a great README
92 
93> AFFiNE 开源时产品还是「套壳」demo,README 写对了照样火。
94> — (AFFiNE case, Iris Wei @WeiYipei, ep03/ep06)
95 
96The 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.
97 
98### Principle 3: English-first, first screen readable in <3 seconds
99 
100> README 英文主,首屏 <3 秒读懂。
101> — (AFFiNE case, Iris Wei @WeiYipei, ep03)
102 
103The 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?**
104 
105### Principle 4: Specific, verifiable instructions beat generic claims
106 
107From [Anthropic prompt engineering](https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview) and [CLAUDE.md effective instructions](https://docs.anthropic.com/en/docs/claude-code/memory):
108 
109> "Use 2-space indentation" beats "Format code properly."
110> "Run `npm test` before committing" beats "Test your changes."
111 
112Apply the same test to README copy:
113 
114- "Works offline — no internet required, all data stored locally" ✅
115- "Powerful offline support" ❌
116 
117Every sentence in a README is an instruction to the reader's brain. Make it concrete enough to verify.
118 
119---
120 
121## README 结构框架 / README Structure Framework
122 
123Derived from analysis of insforge (agentic coding backend), dify (60K+ star LLM platform), and AFFiNE's 0→60K growth.
124 
125```
126[Logo + Project Name]
127[One-line Tagline] ← most critical, non-skippable
128[Badges] ← signals, not decoration
129[Hero image / Demo video] ← show product in <30 seconds
130[What is this? 2–3 sentences] ← first screen core
131[Quick Start] ← shorter = better; just get it running
132[Key Features] ← sorted by user pain, not tech checklist
133[Architecture / How it works] ← optional; use for complex projects
134[Deployment options] ← cloud / local / one-click
135[Claude Code / AI Agent Integration] ← new section; see below
136[Contributing] ← short, link to CONTRIBUTING.md
137[Community & Support] ← Discord / X / Discussions
138[License]
139[Star CTA GIF] ← ❗️ FIRST 3 SCREENS — inline with hero or after Quick Start
140[Star History] ← social proof, bottom (optional extra)
141```
142 
143---
144 
145## 首屏 3 秒法则 / The 3-Second First Screen Law
146 
147**The rule:** Everything above the first scroll must answer three questions without requiring the reader to think.
148 
149| Question | Where to answer |
150|----------|----------------|
151| What is this? | Tagline (1 sentence) |
152| Why should I care? | Sub-description or problem statement (2–3 sentences) |
153| Is it real / trustworthy? | Badges: stars, license, downloads, last commit |
154 
155**What insforge does right:** Logo → one-line tagline → demo video → 3-sentence expansion. Immediately scannable. The video shows the product without words.
156 
157**What dify does right:** Hero image → minimal badge row → 1-paragraph description naming 7 specific features in plain language → immediate Quick Start.
158 
159**Common failure mode:** Verbose "About this project" paragraph before anything visual. Developers scan for signals, not introductions.
160 
161---
162 
163## 各板块写法指南 / Section-by-Section Writing Guide
164 
165### Section 1: Tagline
166 
167**这是整个 README 最重要的一行 / The single most important line in the README.**
168 
169A great tagline does three things simultaneously:
1701. Names what the product *is* (category)
1712. Names who it's *for* (audience)
1723. Names the *pain it kills* (problem)
173 
174**Tagline formula (pick one):**
175 
176```
177[Adjective] [category] for [audience]
178→ "Open-source backend platform for AI coding agents"
179 
180[Category] without [pain point]
181→ "Note-taking without the cloud lock-in"
182 
183[Familiar reference] + [key differentiator]
184→ "Open source Notion alternative — offline-first, privacy-focused"
185 
186[Outcome verb phrase]
187→ "Ship full-stack apps from your AI agent, end to end"
188```
189 
190**AFFiNE case:**
191 
192> Tagline: "Open source Notion alternative"
193> 6 words hit 3 pain points: Notion offline unavailable, poor data export, privacy.
194> — (Iris Wei @WeiYipei, ep01)
195 
196The 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.
197 
198**Rules:**
199- ≤ 12 words
200- No jargon requiring prior knowledge of your project
201- Must work without context — imagine someone sees only this one line
202- Never start with "A powerful..." or "An amazing..." — these signal the writer doesn't know what makes the product special
203 
204**Connection to skill design:** This is identical to the `description` field rule from [Skills docs](https://docs.anthropic.com/en/docs/claude-code/skills): "Put the key use case first." The first sentence is truncated in skill listings — and in GitHub search results.
205 
206---
207 
208### Section 2: Hero Image / Demo Video
209 
210**Show before you tell.**
211 
212A 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.
213 
214For CLI / SDK tools: a `mermaid` architecture diagram + installation command is the equivalent.
215 
216**Rules:**
217- Video ≤ 60 seconds, captioned (non-English speakers are a large part of your audience)
218- Screenshot shows product *in use*, not empty state
219- Host on GitHub's own CDN — drag into the issue editor, not external CDN
220- Dark and light mode variants if supported
221 
222---
223 
224### Section 3: Quick Start
225 
226**This section's only job: get the user to a running instance as fast as possible.**
227 
228```bash
229# 3–5 commands max. No explanations between commands.
230git clone https://github.com/yourorg/yourrepo
231cd yourrepo
232docker compose up -d
233# → open http://localhost:3000
234```
235 
236**Rules:**
237- If setup takes >5 commands, the problem is onboarding, not the README
238- Prerequisites go *above* the commands, not buried in a footnote
239- Provide a cloud/hosted version link as an alternative — "Don't want to self-host? Try cloud.yourproject.com"
240- The commands must actually work on a fresh machine. **Test this.**
241 
242**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.
243 
244---
245 
246### Section 4: Key Features
247 
248**Sort by user pain, not technical implementation.**
249 
250❌ Wrong (technical list):
251```
252- WebSocket support
253- Plugin architecture
254- REST API
255- TypeScript SDK
256```
257 
258✅ Right (pain-first):
259```
260- Works offline — no internet required, all data stored locally
261- Export everything — Markdown, PDF, raw JSON, always your data
262- Self-hostable — deploy to your own server in 5 minutes
263- Plugin API — extend with your own tools
264```
265 
266**Rules:**
267- ≤ 7 features in the main list. More than 7 signals "we don't know what we are."
268- Each bullet: pain point first, implementation detail second
269- Bold the key word — GitHub renders bold in feature lists; it's free hierarchy
270- If star count is high, mention it implicitly ("used by X developers") — social proof in the features section
271 
272---
273 
274### Section 5: Architecture / How It Works (Optional)
275 
276Include when:
277- Project has non-obvious component structure (backend platform, distributed system)
278- Developers need to understand architecture to decide whether to contribute
279- Targeting developers who will integrate, not just use
280 
281**Rules:**
282- Use `mermaid` — renders natively on GitHub. One diagram = 200 words.
283- Keep the diagram to ≤ 8 nodes
284- Put this section *after* Quick Start
285 
286```mermaid
287graph TD
288 A[User / AI Agent] --> B[Your Product Core]
289 B --> C[Service A]
290 B --> D[Service B]
291 B --> E[Service C]
292```
293 
294---
295 
296### Section 6: Deployment Options
297 
298Address all three developer modes: local dev, self-hosted production, cloud.
299 
300```markdown
301| Method | Link | When to use |
302|--------|------|-------------|
303| Cloud (hosted) | [yourproject.com](link) | Zero setup, try now |
304| Docker Compose | [Quick Start](#quick-start) | Self-hosted, recommended |
305| Railway / Render | [one-click deploy](link) | Self-hosted, no Docker |
306| From source | [Dev Guide](link) | Contributing |
307```
308 
309One-click deploy buttons (Railway, Render, Zeabur, Sealos) are high-signal trust indicators and reduce friction to zero for non-Docker users.
310 
311---
312 
313### Section 7: Claude Code / AI Agent Integration ← New Section
314 
315**Add this section if your project:**
316- Can be used as a Claude Code skill or MCP plugin
317- Has a CLI that AI agents can invoke
318- Exposes an API that agentic workflows call
319 
320```markdown
321## Claude Code / AI Agent Integration
322 
323Install as a skill (Claude Code):
324\```
325npx skills add your-project-name
326\```
327 
328Or reference directly in your `CLAUDE.md`:
329\```markdown
330@your-project/README
331\```
332 
333For MCP integration:
334\```json
335{
336 "mcpServers": {
337 "your-project": {
338 "command": "npx",
339 "args": ["-y", "@your-org/your-mcp-server"]
340 }
341 }
342}
343\```
344```
345 
346**Why this matters:**
347- 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))
348- The `/run` and `/verify` bundled skills infer launch from your README — a clear Quick Start section directly improves AI agent onboarding
349- GEO (Generative Engine Optimization): structured, machine-readable README sections increase the probability that AI systems cite your project accurately
350 
351---
352 
353### Section 8: Contributing
354 
355Keep short. Guide lives in `CONTRIBUTING.md`.
356 
357```markdown
358## Contributing
359 
360PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for setup.
361 
362Questions? Join [Discord](link) or open a [Discussion](link).
363```
364 
365Do **not** put a full contributing guide in the README. It breaks reading flow and buries the CTA in prose.
366 
367---
368 
369### Section 9: Community & Support
370 
371Match channel to action type — don't list channels without explaining purpose:
372 
373```markdown
374## Community & Support
375 
376- **Discord** — questions, help, show what you built
377- **GitHub Discussions** — feature requests, long-form questions
378- **GitHub Issues** — bugs only
379- **X / Twitter** — announcements, follow for updates
380- **Email** — security issues, enterprise inquiries
381```
382 
383---
384 
385### Section 10: Star History Chart
386 
387Put at the bottom. Social proof, not navigation.
388 
389```markdown
390[![Star History Chart](https://api.star-history.com/svg?repos=yourorg/yourrepo&type=Date)](https://star-history.com/#yourorg/yourrepo&Date)
391```
392 
393A steep upward curve signals "this project is real." Investors use this too.
394 
395> 投资人专门写爬虫查 Star 真假,说明真实口碑就是你最有力的信号。
396> — (AFFiNE case, Iris Wei @WeiYipei, ep03)
397 
398---
399 
400### Section 11: Star CTA GIF — The Most Underused Conversion Trick
401 
402A short GIF showing the mouse clicking the ★ Star button converts passers-by into stargazers. It sounds trivial. It works.
403 
404**Why it works:**
405- Removes ambiguity: many first-time visitors don’t know *where* to click to star
406- Creates micro-commitment: watching the animation primes the action
407- Feels human, not spammy — unlike a bold "PLEASE STAR US" text block
408 
409**How to make the GIF (3 options):**
410 
411| Option | Tool | Time | Quality |
412|--------|------|------|---------|
413| Screen record + convert | QuickTime (Mac) + Gifox / LICEcap / ScreenToGif | 5 min | ★★★★ |
414| Browser extension | [Screencastify](https://www.screencastify.com/) or [Loom](https://www.loom.com/) → export GIF | 3 min | ★★★ |
415| Online recorder | [Giphy Capture](https://giphy.com/apps/giphycapture) (Mac) | 3 min | ★★★ |
416 
417**What to record (exact steps):**
4181. Open your repo in browser, zoom to 125%
4192. Slowly move mouse to the ★ Star button (top right area)
4203. Pause 1 second
4214. Click — let the animation play (star turns yellow)
4225. Total duration: 3–5 seconds, loop seamlessly
423 
424**GIF specs:**
425- Size: 400–600px wide, auto height
426- Duration: 3–5 seconds, looping
427- File size: keep under 1MB (GitHub CDN limit for smooth load)
428- Optimize with [Ezgif](https://ezgif.com/optimize) if over 1MB
429 
430**Placement in README: First 3 screens, not the bottom**
431 
432> ❗️ Most repos bury the star CTA at the bottom. By then, 80%+ of visitors have already left.
433> Put it where people actually see it.
434 
435**Option A — Inline with Hero (recommended):**
436Right after the tagline + badges, before Quick Start. Catches visitors while they’re still deciding whether to care.
437 
438```markdown
439## About
440 
441Open source Notion alternative. [tagline...]
442 
443⭐ **If this looks useful, star it** — it helps others find the project.
444 
445![Star this repo](./assets/star-demo.gif)
446```
447 
448**Option B — After Quick Start (second-best):**
449After users successfully run the project, strike while the iron is hot.
450 
451```markdown
452## Quick Start
453 
454```bash
455npm install yourproject
456```
457 
458It works? ⭐ [Star this repo](https://github.com/yourorg/yourrepo) — takes 2 seconds.
459 
460![Star this repo](./assets/star-demo.gif)
461```
462 
463**Option C — Star History at the bottom (in addition to A or B, not instead):**
464 
465```markdown
466## ⭐ Star History
467 
468[![Star History Chart](https://api.star-history.com/svg?repos=yourorg/yourrepo&type=Date)](https://star-history.com/#yourorg/yourrepo&Date)
469```
470 
471**Rule: always use A or B. C is optional extra.**
472 
473**Store the GIF in your repo:**
474```
475yourrepo/
476└── assets/
477 └── star-demo.gif ← commit this
478```
479 
480**Tone guidance:**
481- ✅ `"If this project helped you, a star means a lot"`
482- ✅ `"Star us to stay updated"`
483- ❌ `"PLEASE GIVE US A STAR!!!"`
484- ❌ `"Don’t forget to star!"` (implies obligation)
485 
486> The GIF does the asking so the text doesn’t have to.
487 
488---
489 
490## Badge 使用原则 / Badge Usage Principles
491 
492Badges are **signals**, not decoration. Each badge answers a developer question.
493 
494| Badge type | Question answered | Include? |
495|-----------|-------------------|----------|
496| License | "Can I use this commercially?" | Always |
497| Stars | "Is this popular / maintained?" | Always |
498| Last commit | "Is this abandoned?" | Yes |
499| Build / CI status | "Does it actually work?" | Yes |
500| Downloads (npm/docker/pypi) | "Is anyone actually using this?" | Yes if >1K |
501| Code coverage | "Is the code quality real?" | Only if >70% |
502| Version | "What's stable?" | Yes for libraries |
503| "Made with X" partner badges | — | Omit unless required |
504 
505**Rules:**
506- ≤ 8 badges on the first row. More = visual noise.
507- Group by meaning: identity → health → community
508- Never use a failing badge. A red CI badge is worse than no CI badge.
509 
510---
511 
512## 常见死亡模式 / Anti-patterns (README Death Modes)
513 
514### ❌ Death Mode 1: Feature Dumping Without Problem Framing
515 
516```markdown
517Features:
518- Real-time collaboration
519- Markdown support
520- Plugin system
521- REST API
522- Mobile app
523- Dark mode
524```
525 
526Tells me nothing about who this is for or why I need it.
527 
528**Fix:** Lead with the pain. "If you've ever lost work because [X happened], MyApp solves that."
529 
530---
531 
532### ❌ Death Mode 2: Burying Quick Start
533 
534Quick Start below the second scroll = 60% of developers already gone.
535 
536**Fix:** Quick Start is section 2 or 3. Maximum.
537 
538---
539 
540### ❌ Death Mode 3: Generic Tagline
541 
542```
543A powerful, flexible, and extensible framework for modern developers.
544```
545 
546"Powerful," "flexible," "extensible" — every project makes these claims. This is noise.
547 
548**Fix:** Name the specific pain. Name the specific category. Name the specific user.
549 
550**Prompt engineering parallel:** Per [Anthropic's guidance](https://docs.anthropic.com/en/docs/claude-code/memory#write-effective-instructions), vague instructions ("Format code properly") produce inconsistent results. Same principle: vague taglines produce inconsistent reader behavior.
551 
552---
553 
554### ❌ Death Mode 4: No Visual Above the Fold
555 
556Wall of text → wall of text → wall of text. Developers scan; they don't read.
557 
558**Fix:** Hero image or demo GIF immediately after the tagline. Non-negotiable for UI products.
559 
560---
561 
562### ❌ Death Mode 5: README Only in Native Language
563 
564> README 英文主,首屏 <3 秒读懂。
565> — (AFFiNE case, Iris Wei @WeiYipei, ep03)
566 
567Chinese-only, Japanese-only README caps addressable audience. GitHub Trending, HN, Reddit — all English-first platforms.
568 
569**Fix:** English is the primary document. Translated versions via badges or `/i18n/` folder.
570 
571---
572 
573### ❌ Death Mode 6: Contributing Section as Wall of Text
574 
575If `## Contributing` runs for 400 lines in the README, it's buried in prose and no one reads it.
576 
577**Fix:** One paragraph + link to `CONTRIBUTING.md`. README is a landing page.
578 
579---
580 
581### ❌ Death Mode 7: Treating Stars as Vanity Metrics
582 
583Stars are distribution signals. GitHub Trending, search ranking, investor due diligence — all use star velocity as a legitimacy proxy.
584 
585> 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.
586> — (Iris Wei @WeiYipei, ep01/ep06)
587 
588A README that converts well drives star velocity → drives trending → drives more stars. README is the entry point of this loop.
589 
590---
591 
592### ❌ Death Mode 8: No AI Agent / Claude Code Section (2025+)
593 
594As 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.
595 
596**Fix:** Add [Section 7: Claude Code / AI Agent Integration](#section-7-claude-code--ai-agent-integration).
597 
598---
599 
600## AFFiNE 核心数据 / AFFiNE Data Points for Context
601 
602All sourced from Iris Wei (@WeiYipei) podcast episodes (ep01 / ep03 / ep06):
603 
604| Metric | Value | Source |
605|--------|-------|--------|
606| Stars, week 1 | 6,000 | ep01/ep03 |
607| Stars, month 1 | 10,000 | ep01 |
608| Stars, total | 60,000+ | ep01/ep03 |
609| GitHub Trending appearances | 28 consecutive | ep06 |
610| Tagline strategy | "Open source Notion alternative" — targeted offline / data export / privacy pain | ep01 |
611| Product state at launch | "套壳" demo (wrapper demo, incomplete) | ep03/ep06 |
612| What drove trending stays | Obsessive community reply for first 2 weeks | ep06 |
613| What drove initial launch | Dev docs + traffic funnels + content prepared pre-launch | ep01 |
614| Investor signal | Investors wrote crawlers to verify star authenticity | ep03 |
615 
616**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.**
617 
618---
619 
620## 发布前自检 Checklist / Pre-publish Checklist
621 
622Run before every README publish or major update.
623 
624### First screen (no scroll required)
625- [ ] Logo / project name visible and clear
626- [ ] Tagline ≤ 12 words, answers: what + who + pain
627- [ ] Hero image, GIF, or demo video within first screen
628- [ ] Badge row present, ≤ 8 badges
629- [ ] No wall of text before any visual element
630 
631### Content
632- [ ] Quick Start is in the top 3 sections
633- [ ] Quick Start has ≤ 5 commands and works on a fresh machine
634- [ ] Features sorted by user pain, not technical implementation
635- [ ] Each feature bullet leads with benefit, not mechanism
636- [ ] Contributing section ≤ 1 paragraph + link to CONTRIBUTING.md
637 
638### Language & tone
639- [ ] Primary language is **English**
640- [ ] No "powerful," "flexible," "amazing," "robust" — replace with specifics
641- [ ] No "we believe in open source" preamble — cut to the point
642- [ ] Tagline does not start with "A" or "An"
643 
644### Trust signals
645- [ ] License badge present
646- [ ] CI / build status badge present *and passing*
647- [ ] Star history chart at the bottom
648- [ ] Star CTA GIF in first 3 screens (assets/star-demo.gif, <1MB, 3–5s loop) — NOT at the bottom
649- [ ] Discord / community link in the README
650- [ ] If star count >500, visible in badges
651 
652### Technical
653- [ ] All links tested (no 404s)
654- [ ] Images hosted on GitHub CDN (not external)
655- [ ] `mermaid` diagrams render correctly in GitHub preview
656- [ ] One-click deploy buttons tested (if applicable)
657- [ ] README renders correctly on mobile (check GitHub mobile)
658 
659### AI-era additions
660- [ ] **skill-ready:** Is there a clear `npx skills add` or MCP install command?
661- [ ] **GEO-ready:** Does the README have structured, machine-readable sections (tables, headers, code blocks) that AI systems can cite accurately?
662- [ ] **Agent-friendly Quick Start:** Can Claude Code's `/run` skill infer the launch command from your README without a custom skill setup?
663 
664---
665 
666## 快速诊断 / Quick Diagnosis
667 
668### 2026 activation gate
669 
670A 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.
671 
672When someone sends you a README to review, run through this in order:
673 
6741. **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.
675 
6762. **Find Quick Start.** Count which section number it is. If ≥ 5, it needs to move up.
677 
6783. **Read the tagline aloud.** Does it sound like a human pitch, or a feature list? If the latter, rewrite using the pain-first formula.
679 
6804. **Count the features.** If >7 bullets, ask: which 3 make someone install this? Keep those, cut the rest.
681 
6825. **Look for walls of text.** Any paragraph >5 lines above the Contributing section is probably explaining something a diagram or demo does better.
683 
6846. **Check language.** Is the primary language English?
685 
6867. **Check AI integration.** Is there a Claude Code / AI agent section? Does the Quick Start work for automated install? (New in 2025.)
687 
688---
689 
690## References
691 
692### Claude Code 官方文档 / Claude Code Official Docs
693- [Skills — frontmatter spec, context:fork, allowed-tools, when_to_use](https://docs.anthropic.com/en/docs/claude-code/skills)
694- [Memory — CLAUDE.md 4-layer scope, effective instructions, specificity rules](https://docs.anthropic.com/en/docs/claude-code/memory)
695- [Prompt engineering overview](https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview)
696- [Claude Code documentation home](https://docs.anthropic.com/en/docs/claude-code/overview)
697- [Subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents)
698 
699### Anthropic 课程 / Courses
700- [Claude Code 101 (SkillJar)](https://anthropic.skilljar.com/claude-code-101)
701- [Prompt Engineering Interactive Tutorial](https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/prompt-engineering-tutorial)
702- [Anthropic Academy](https://www.anthropic.com/academy)
703 
704### 提示工程 / Prompt Engineering
705- [Be specific and direct](https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/be-specific-and-direct)
706- [Use XML tags](https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags)
707 
708### 社区资源 / Community
709- [Anthropic Discord](https://discord.com/invite/anthropic)
710- [Claude Code GitHub Discussions](https://github.com/anthropics/claude-code/discussions)
711 
712### 案例 README / Case Study READMEs
713- [AFFiNE](https://github.com/toeverything/AFFiNE) — 0→60K stars case study (primary reference)
714- [Dify](https://github.com/langgenius/dify) — 60K+ star LLM platform, aggressive Quick Start placement
715- [InsForge](https://github.com/insforgehq/insforge) — agentic coding backend, clean tagline + mermaid architecture
716 
717---
718 
719*By Iris (生姜 Iris) · ex-COO @ AFFiNE (0 → 60k★)*
720*For overall OSS growth strategy → use `gr-oss-marketing` or `gingiris-opensource`*
721*For README writing specifically → this is the skill*
722 

Discussion

Alternatives

Also in Developer docsSee all 533 in Development →