Communitygithub.com

ivercurry99/skill-publish

Checklist and 4 Markdown templates I keep for publishing small personal projects to public GitHub. Trademark & license sanity, About field & Topics, README rewrite, a tagged v1.0.0 release, and share-post drafts. 我整理的一套发布小项目到公开 GitHub 的逐步执行 Checklist 与 4 份现成模板,覆盖商标与许可证自查、About 栏与 Topics 的写法、README 的改写方式、v1.0.0 版本的发布,以及各平台分享帖的起草。

skill-publish 是什么?

skill-publish is a Claude Code agent skill that checklist and 4 Markdown templates I keep for publishing small personal projects to public GitHub. Trademark & license sanity, About field & Topics, README rewrite, a tagged v1.0.0 release, and share-post drafts. 我整理的一套发布小项目到公开 GitHub 的逐步执行 Checklist 与 4 份现成模板,覆盖商标与许可证自查、About 栏与 Topics 的写法、README 的改写方式、v1.0.0 版本的发布,以及各平台分享帖的起草。.

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add ivercurry99/skill-publish

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

预览

来自技能 README

License
Python
Platform
CI

文档

skill-publish · Open Source Project Publishing to GitHub One-Stop Pipeline

A set of standard operating procedures to transform a "finished local Skill / open-source project" into something on GitHub that is searchable, understandable, desirable to click on, and appealing to download and try. The complete flow consists of 6 Phases, executed in order.


When to Use (Trigger Conditions)

  • ✅ You have just finished a local Skill (e.g., knowledge management tool, image generation script, Agent workflow) and are ready to make it public on GitHub
  • ✅ You want to give an existing repository a "star-growth checkup" by repackaging the About / Topics / README
  • ✅ You want to publish a versioned Release with well-written Release Notes
  • ✅ You want to simultaneously generate promotional posts for platforms like Juejin / V2EX / Xiaohongshu / Jike
  • ❌ Not for writing code / fixing bugs / doing Code Review (use other skills for those)

Phase 1 — Legal Compliance Check (Do this first; fixing it later is much more costly)

1.1 Trademark & Brand Term Scan

Scan README.md / SKILL.md / script files for the following risky terms:

  • Registered trademarks prohibited as product names: ChatGPT, GPT-4, Douyin, WeChat, App Store, YouTube, Google, Facebook, etc.
    • ✅ Correct approach: Use descriptive phrases like "Compatible with OpenAI series models" or "Can call the xx platform API"; do not use brand names as product name fields
  • Trademark symbols: Unless you actually hold a registration certificate, do not add ® / ™ after your own project name
  • GitHub-related logos: GitHub Logo, Octocat image are prohibited from being directly placed in the repository as decoration (unless you have GitHub authorization); "GitHub" as a platform name can be normally mentioned
  • API Vendor Names: Writing "Seedream / DALL·E 3 / FLUX and other image generation services" is normal descriptive usage; do not directly copy their Logos into README as decorative images
  • Fonts: If the README contains demonstration screenshots, the decorative fonts in the screenshots must be open-source, free, and commercially usable fonts (Source Han Sans / Noto Sans / ZCOOL Happy Font, etc.); do not use unauthorized FounderType / Hanyi / Monotype fonts
  • Portraits: Real person avatars/photos used in example images must be taken by yourself or from Unsplash / Pexels under CC0 license; do not directly grab others' photos from social platforms
  • Sensitive words: Politics/pornography/drugs/violence/gambling/minors → zero tolerance, delete immediately

1.2 License Format & Selection Compliance

Open-source projects must have a LICENSE file; without one, it defaults to "All Rights Reserved," making others hesitant to use it.

  • Default Recommendation: MIT License (most permissive, star-growth friendly, enterprises and individuals can use it)
  • The first line of the LICENSE file must strictly be MIT License; an empty first line or writing "MIT协议" in Chinese will cause GitHub not to recognize the License badge
  • Standard MIT template (copy and replace [year] and [your username]):
    MIT License
    
    Copyright (c) [year] [your GitHub username]
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    
  • Validation: gh repo view <owner>/<repo> --json licenseInfo output must show MIT; otherwise, fix the LICENSE and push again

1.3 Sensitive Information & Privacy Cleanup

Globally grep for the following patterns; delete or replace with placeholders upon finding:

  • Hardcoded secrets: ghp_, sk-, xoxb-, AKIA, Bearer long tokens
  • Personal privacy: phone numbers, real names (unless necessary), email, ID card numbers, bank card numbers, specific addresses
  • Internal links: intranet 192.168.* / 10.*, URLs with internal keywords, non-public private repository addresses
  • Temporary file paths: user local directory C:\Users\xxx\ type absolute paths → change to generic example $HOME/project

Phase 2 — GitHub Repository Packaging (About Bar Trio)

2.1 Description Formula (Directly Apply)

One-sentence core selling point in English + period + supplementary explanation in Chinese. Length 80–160 characters.

  • The first 40 characters are most important (the GitHub mobile app search results page only truncates display to this many)
  • The beginning must contain a search keyword; don't write empty phrases like "A useful little tool"
  • Example:
    • ❌ Bad: "Xiaohongshu image tool, very useful, come use it"
    • ✅ Good: "Structured prompts + multi-model adapter for Xiaohongshu AI carousels. 8 style presets, 4 vendor fallback, stability first. 结构化 Prompt + 多模型适配器生成小红书图文素材,出图稳定优先"

2.2 Website Field (Don't Leave Empty!)

Priority:

  1. Project's actual Demo URL / Online work address / Author's Xiaohongshu homepage
  2. Author's own GitHub Profile: https://github.com/<username>
  3. Fallback: Fill in the repository's own URL (leaving empty = one less line of information in the About bar + one less click entry point)

2.3 Topics Combination Formula (8–12)

4 categories combined, all indispensable: Major Category (3–4) + Business Scenario (3–5) + Popular High-Frequency (2–3) + Niche (1–2)

  • Character Rules: GitHub only accepts lowercase letters / numbers / single hyphen -; no Chinese, no uppercase, no spaces, no starting or ending with underscore or -
  • Category Definitions and Examples:
    CategoryPurposeExample
    Major Category Tech StackLet users searching "python" and similar broad terms hitpython, javascript, typescript, rust, go, cli
    Business ScenarioLet users searching "What can I use for my second brain" hitsecond-brain, knowledge-management, xiaohongshu, llm-agent, note-taking
    Popular High-FrequencyTags most used by people on GitHub search, bring trafficprompt-engineering, stable-diffusion, agent-skill, workflow-automation, ai-coding-assistant
    NichePrecise audiences, less competition, higher conversionpara-method, zettelkasten, harness, scaffolding, pkm, seedream

Complete example in templates/topics-formula.md.


Phase 3 — README Visual Enhancement (5 Standard Modules)

Goal: User scrolling to the first screen can understand "What is this? Can I use it? How do I run it?" within 3 seconds.

3.1 Hero First Screen (Mandatory)

# Project Name (<30 characters, bilingual optional)

<Project Hero Image / Decorative SVG — Width fills 900px>

> Slogan one-liner (<50 characters)
> Example: Build a structured second brain knowledge base in 3 minutes, 0 configuration 0 network, 100% pure Python standard library.

Core features 3–4 bullets:
- ✨ Feature 1: Write specific value, not "feature-rich"
- 🚀 Feature 2: Quantify numbers preferably (3 min / 0 dependency / 4-tier fallback / 8 presets)
- 🛡️ Feature 3: Engineering or stability selling point (automatic degradation / progress memory / idempotent safety)

3.2 Badge Trio (Mandatory)

Uniformly use shields.io style, placed on the line below the project name:

  • ![License](https://img.shields.io/badge/license-MIT-green)
  • ![Python](https://img.shields.io/badge/python-3.8%2B-blue)
  • ![Platform](https://img.shields.io/badge/platform-win%20%7C%20mac%20%7C%20linux-lightgrey)
  • Optional: ![CI](https://github.com/<owner>/<repo>/actions/workflows/ci.yml/badge.svg)

3.3 Screenshot/Demo Area (Mandatory)

  • At least 1 image, placed at the very top of the Features section; preferably a GIF showing the core flow
  • ALT text must be clear: ![Knowledge base 4-layer flowchart—Four-stage flow from Capture to Express]
  • If no image yet: Use a clear placeholder comment <!-- TODO: Insert XX demo screenshot (suggestion: width 1600x900 png) -->, do not actually leave it empty

3.4 Installation & Running (Mandatory)

3-line method, copy-paste to run:

# 1. Clone
git clone https://github.com/<owner>/<repo>.git
cd <repo>

# 2. Run (add pip install if dependencies exist)
python run.py

# 3. Output looks like this (paste 5–10 lines of real stdout example)
[Phase 1/4] Capture       ... OK → 3 files imported
[Phase 2/4] Index         ... OK → 18 notes indexed
...
[DONE] Knowledge base built, time elapsed 2 min 34 s

3.5 Comparison Table / Why Reinvent the Wheel (Highly Recommended)

Answer the first visitor's soul-searching question "Why don't I use the existing XX instead of yours":

DimensionThis ProjectHandwritten Notes / Traditional ScaffoldingCommercial SaaS
Setup Cost0DaysHours
Data Privacy100% Local FilesLocalUploaded to Cloud
CustomizabilityFully Open Source, ModifiableHard to ModifyBlack Box
PriceFreeFreeMonthly/Yearly Subscription

Phase 4 — Semantic Version Release

4.1 Version Number Rules (SemVer)

  • First Release: Fixed at v1.0.0 (0.x.x gives the feeling "still in alpha, unstable")
  • Subsequent:
    • PATCH v1.0.1: Bug fixes, backward compatible
    • MINOR v1.1.0: Feature additions, backward compatible
    • MAJOR v2.0.0: Breaking changes, upgrade will cause errors

4.2 Release Notes Three-Part Template

See templates/release-notes-template.md for details.

  • Title: vX.Y.Z: One-sentence core selling point of the version (<30 characters)
  • Body: Core feature bullets → Quick start 3 lines → Welcome issue invitation
  • Official Version: Do not check Draft / Do not check Pre-release / Check Set as latest release

4.3 Release Command

# After writing notes.md
gh release create v1.0.0 --target main \
  --title "v1.0.0: First public release, core features launched" \
  --notes-file release-notes.md \
  --latest

Phase 5 — Multi-Platform Promotional Material Generation

5.1 Directory Structure (Standard)

tiezi/
└── <project name>/
    ├── juejin.md      # Juejin: Most complete + strongest technical depth
    ├── v2ex.md        # V2EX: Condensed version + programmer community tone
    ├── jike.md        # Jike: Short, fast, quick + personal sharing tone
    └── xiaohongshu.md # Xiaohongshu: Only submit if it's life/creation/efficiency content

5.2 Strategy for Choosing 3 Platforms

  • Tech / AI Coding / Agent type projects: Juejin + V2EX + Jike
  • AI Image Generation / Content Creation / Knowledge Management type: Xiaohongshu + Juejin + V2EX
  • CLI / Pure Programmer Tools: Juejin + V2EX + Zhihu (Optional)

5.3 Share Post Structure Cardinal Rule (Rewrite if violated)

a → b → c → d four sections, order cannot be changed:

a. Opening: Development background / Real-world pain points (4–6 specific, real, relatable pain points for the reader, no empty talk)

b. Core feature introduction + 2–3 screenshot placeholders (Each placeholder clearly states "What content should this image contain + Recommended dimensions", not just "insert screenshot")

c. Key technical pitfalls encountered during implementation (3–4, including: specific manifestation → root cause → solution → lessons learned)

d. Conclusion: Project is open source → Welcome to download and try → Welcome to submit issues for discussion and feedback → Include GitHub repository link

5.4 Cardinal Red Lines

  • ❌ Absolutely prohibited: Direct begging like "please give a star", "help click a star", "star it", "casually click star" (any variation is not allowed, including emoji hints like 🥺👉👈)
  • ❌ Prohibited: Advertising tone (self-praise terms like "best on the market", "kills competitors", "first worldwide release")
  • ✅ Correct tone: Personal developer sharing real pitfalls encountered; shortcomings can be honestly stated as "Currently XX is not yet supported, will be added in the next Release"

Detailed Markdown template in templates/share-post-template.md.


Phase 6 — Skill Project Self-Packaging & Publishing to GitHub

6.1 Skill Format Must Be Compliant

  • Standard directory: .trae/skills/<skill-name>/
  • Required: SKILL.md (frontmatter containing name + description, description must state both "what it does" and "when to call it")
  • Optional subdirectories:
    • scripts/ Python/Bash helper scripts
    • templates/ Markdown / JSON / SVG templates
    • assets/ Images, icons, example outputs

6.2 SKILL.md Content Cleanup (Last Sensitive Info Check)

  • ❌ Must not contain: User local temporary paths (C:\Users\xxx\AppData\Local\Temp\...), real tokens, private repository URLs, project temporary progress
  • ✅ Must be all: Reusable process descriptions, trigger conditions, safe examples, placeholders

6.3 Public Repository Required Files

Before pushing to GitHub, ensure the root directory has:

  • LICENSE (MIT, per Phase 1.2)
  • README.md (Chinese, per Phase 3's 5 modules)
  • .gitignore (Python projects must add __pycache__/ *.pyc .DS_Store etc.)

6.4 Post-Push "Bootstrap" Execution

After pushing the Skill project itself to GitHub, immediately re-run Phase 2 → Phase 4 of this process:

  1. Modify Description / Website / Topics
  2. Check License badge display
  3. Release v1.0.0

→ Once completed, this Skill itself is a qualified "skill-publish process demonstration project".


Execution Checklist (Follow for Invoking Phase)

StepActionOutputDone
1Phase 1 Legal Compliance Check: Trademarks / LICENSE format / Sensitive words / PrivacyA clean repository☐
2Phase 2 About Trio: Description written per formula + Website filled + Topics 8-12 combined per formulaAbout bar updated☐
3Phase 3 README Visual Enhancement: Hero + Badge + Screenshot + Install 3 lines + Comparison TableREADME.md finalized☐
4Phase 4 Release: Semantic version v1.0.0 + Release Notes three-part releaseGitHub Release page☐
5Phase 5 Promotional Material: Generate 3 pieces in tiezi//.md, strict a-b-c-d structure3 Markdown posts☐
6If it's a Skill → Phase 6 Package and publish + bootstrap steps 2-4Public repo live☐

相关技能