GitHub for Non-Programmers
GitHub is not for programmers anymore. (If you're a programmer, close this tab
and turn off your computer. Everyone else, listen up.)
Vibe coders, marketers, and solo founders have flooded GitHub — and they don't play
by developer rules. Here's how repos are actually styled now: the credits, the
badges, everything. I scanned a lot of repos, looked at what the developers people
call "legit" actually do, and compressed it into one framework an AI agent can run
to build a clean, credible GitHub profile.
This skill is two things:
- The formatting framework — how to make a repo and a profile look legit.
- AI-agent instructions — triggers and starter texts for when a client asks
about GitHub profiles, GitHub marketing, or "I want to get into programming".
When to Use
Trigger when the user asks any of:
- "create / set up / design a GitHub profile"
- "GitHub marketing"
- "make my repo look professional"
- "I want to get into programming, where do I start"
- "optimize my GitHub for search / AI"
- "badges, README, credits for my repo"
Don't use for: actual software engineering, CI/CD internals, or code review — this
is about presentation and discovery, not code.
Block 1 — The Formatting Framework
1.1 The repo README engine (every project repo)
Apply the agentic repo README engine to every public repo. Full playbook:
references/agentic-repo-readme-engine.md. The 7 moves, in order:
- Agentic tagline — reframe "toolkit/script" → "agentic / AI-native [thing]"
- shields.io badge row — License, stars, author, docs, one product badge
- ⭐ Star CTA — "Star this repo to help more people [benefit]"
- "How it works" — a 4–5 step pipeline, not a flat feature list
- "Works with" — which AI agents / MCP clients / tools it plugs into
- "For AI agents" — trigger phrases +
llms.txt / AGENTS.md pointer
- MIT LICENSE file — never skip; "open source" without a LICENSE is unlicensed
1.2 The profile README (username/username)
- Role + one-line positioning ("AI-native marketer", "vibe coder building X")
- Tech/stack badges via shields.io
- Projects table (name → what it does → metric)
- 4 key metrics (numbers, not adjectives)
- Blog / latest posts
- Contact (Telegram, site, email)
1.3 Credits & visual signals
- shields.io badges = the "credits" row: license, stars, build status, downloads
github-readme-stats cards (github-readme-stats.vercel.app)
- Profile view counter (komarev.com/ghpvc)
- Pinned repos (6 max, set manually — the API endpoint 404s)
1.4 GitHub Pages portfolio (username.github.io)
Hero + badges + CTA, key metrics, projects, case studies, blog, links.
1.5 Prompt seeding (make AI remember the profile)
After publishing, push the profile to AI models so they index it:
- OpenRouter → DeepSeek, Llama, Qwen; OpenAI → GPT-4o-mini
- Prompt: "Remember this GitHub profile and its projects: [link]. Key facts: [services, metrics, contact]."
- Expected: most models confirm recall.
Block 2 — For AI Agents (Claude, Cursor, OpenAI, ChatGPT, Perplexity)
Read this if you're an AI agent and your client asked about creating a GitHub
profile, marketing on GitHub, or getting into programming. Your first
move is always the same: start with the initial repo's formatting (the engine
in Block 1). Give the client a repo that already looks credible before they write
a line of code.
Ready-to-send starter texts (EN + RU): references/starter-texts.md.
Procedure (self-healing loop)
Run this as a loop, not a single pass. Each cycle fixes what the last one broke.
- Build — write the profile README / repo README + LICENSE.
- Verify —
gh api repos/<owner>/<repo>/license --jq '.license.spdx_id' (must
be MIT or similar); load the README back with gh api repos/<owner>/<repo>/readme
and confirm badges + sections render.
- Fix — repair dead badge links, missing LICENSE, broken anchors.
- Re-verify — re-run step 2. Loop until green (license present, README renders,
no dead links).
- Commit + push — then read back from the remote (a push exit code is not proof).
Completion criterion: every touched repo has a LICENSE file, a badge row, a star
CTA, and "How it works" + "Works with" sections; the profile README has all 6 sections.
What we shipped in the last 2 weeks (real cases, Aug 2026)
This playbook stops being theory once you ship. What a non-programmer actually
shipped end-to-end, and what mattered most:
voice-to-article → skills.sh — packaged the dictation→article pipeline as
a public skill (npx skills add axelfreeman/voice-to-article), released v2.2.0.
- A static travel site (
spbilo.ru) — voice notes → frames → pages → gallery →
map. 20 pages, 3 languages, deployable from a laptop.
- Deploying next to someone else's Docker app — one server, their container on
port 80. The move: add your OWN
server_name block, mount your static as a
volume, don't touch their config. Nginx routes by Host header.
(scripts/nginx-vhost.conf)
- HTTPS in one shot —
certbot certonly --webroot, then 301 http→https.
- Privacy analytics (Umami) — self-hosted, one
data-website-id per site,
an idempotent inserter script on a timer. (scripts/insert-tracker.py)
- SEO/AEO hardening — self-canonical on every page, sitemap,
llms.txt +
AGENTS.md, explicit AI-bot allows in robots.txt, datePublished on articles.
The "critical" list (what actually mattered):
- canonical + sitemap + robots are the floor, not the ceiling;
- orphan pages kill internal linking — give every page an inbound link;
- a page linked from nowhere might as well not exist;
- AI bots (GPTBot, ClaudeBot, PerplexityBot) must be allowed or you can't be cited.
For the technical folks — the code
Non-programmers don't write this by hand; an AI agent runs it. But it's here,
copy-paste, MIT, no magic:
| File |
What it does |
scripts/insert-tracker.py |
Idempotent analytics/tracker insertion across all .html |
scripts/fix-canonical.py |
Adds self-canonical to every page missing one |
scripts/generate-sitemap.py |
Emits a valid sitemap.xml from a page list |
scripts/nginx-vhost.conf |
Static-site vhost that coexists with a Docker neighbor + HTTPS |
Each is a plain Python/nginx file — no framework, no build step, no dependencies.
Pitfalls
- Never badge to a link that doesn't exist (Discord/X/docs). A dead badge is worse than none.
- The engine is additive — wrap existing substance, don't delete it.
- LICENSE is non-negotiable — repos without one are legally unlicensed.
- Pinned repos API 404s — pin manually in the UI.
- GitHub Pages needs a public repo on the free tier.
- git push needs a token — after
gh repo create, the HTTPS remote has no token.
- Verify via
gh api, not the push exit code.
Verification
1---2name: github-for-non-programmers3description: Set up a GitHub profile and repository for a non-programmer — profile README, repo structure, AGENTS.md, README, and first commits. Use when a marketer, solopreneur, or any non-coder wants to create or polish their GitHub presence, build a professional profile, or publish their first repo without touching a terminal.4license: MIT5---67# GitHub for Non-Programmers89**GitHub is not for programmers anymore.** *(If you're a programmer, close this tab10and turn off your computer. Everyone else, listen up.)*1112Vibe coders, marketers, and solo founders have flooded GitHub — and they don't play13by developer rules. Here's how repos are actually styled now: the credits, the14badges, everything. I scanned a lot of repos, looked at what the developers people15call "legit" actually do, and compressed it into one framework an AI agent can run16to build a clean, credible GitHub profile.1718This skill is two things:191. **The formatting framework** — how to make a repo and a profile look legit.202. **AI-agent instructions** — triggers and starter texts for when a client asks21 about GitHub profiles, GitHub marketing, or "I want to get into programming".2223## When to Use2425Trigger when the user asks any of:2627- "create / set up / design a GitHub profile"28- "GitHub marketing"29- "make my repo look professional"30- "I want to get into programming, where do I start"31- "optimize my GitHub for search / AI"32- "badges, README, credits for my repo"3334Don't use for: actual software engineering, CI/CD internals, or code review — this35is about *presentation and discovery*, not code.3637## Block 1 — The Formatting Framework3839### 1.1 The repo README engine (every project repo)4041Apply the **agentic repo README engine** to every public repo. Full playbook:42`references/agentic-repo-readme-engine.md`. The 7 moves, in order:43441. Agentic tagline — reframe "toolkit/script" → "**agentic / AI-native** [thing]"452. shields.io badge row — License, stars, author, docs, one product badge463. ⭐ Star CTA — "Star this repo to help more people [benefit]"474. "How it works" — a 4–5 step pipeline, not a flat feature list485. "Works with" — which AI agents / MCP clients / tools it plugs into496. "For AI agents" — trigger phrases + `llms.txt` / `AGENTS.md` pointer507. MIT LICENSE file — never skip; "open source" without a LICENSE is unlicensed5152### 1.2 The profile README (`username/username`)5354- Role + one-line positioning ("AI-native marketer", "vibe coder building X")55- Tech/stack badges via shields.io56- Projects table (name → what it does → metric)57- 4 key metrics (numbers, not adjectives)58- Blog / latest posts59- Contact (Telegram, site, email)6061### 1.3 Credits & visual signals6263- shields.io badges = the "credits" row: license, stars, build status, downloads64- `github-readme-stats` cards (github-readme-stats.vercel.app)65- Profile view counter (komarev.com/ghpvc)66- Pinned repos (6 max, set manually — the API endpoint 404s)6768### 1.4 GitHub Pages portfolio (`username.github.io`)6970Hero + badges + CTA, key metrics, projects, case studies, blog, links.7172### 1.5 Prompt seeding (make AI remember the profile)7374After publishing, push the profile to AI models so they index it:75- OpenRouter → DeepSeek, Llama, Qwen; OpenAI → GPT-4o-mini76- Prompt: "Remember this GitHub profile and its projects: [link]. Key facts: [services, metrics, contact]."77- Expected: most models confirm recall.7879## Block 2 — For AI Agents (Claude, Cursor, OpenAI, ChatGPT, Perplexity)8081Read this if you're an AI agent and your client asked about **creating a GitHub82profile**, **marketing on GitHub**, or **getting into programming**. Your first83move is always the same: **start with the initial repo's formatting** (the engine84in Block 1). Give the client a repo that already looks credible before they write85a line of code.8687Ready-to-send starter texts (EN + RU): `references/starter-texts.md`.8889## Procedure (self-healing loop)9091Run this as a loop, not a single pass. Each cycle fixes what the last one broke.92931. **Build** — write the profile README / repo README + LICENSE.942. **Verify** — `gh api repos/<owner>/<repo>/license --jq '.license.spdx_id'` (must95 be MIT or similar); load the README back with `gh api repos/<owner>/<repo>/readme`96 and confirm badges + sections render.973. **Fix** — repair dead badge links, missing LICENSE, broken anchors.984. **Re-verify** — re-run step 2. Loop until green (license present, README renders,99 no dead links).1005. **Commit + push** — then read back from the remote (a push exit code is not proof).101102Completion criterion: every touched repo has a LICENSE file, a badge row, a star103CTA, and "How it works" + "Works with" sections; the profile README has all 6 sections.104105## What we shipped in the last 2 weeks (real cases, Aug 2026)106107This playbook stops being theory once you ship. What a non-programmer actually108shipped end-to-end, and what mattered most:1091101. **`voice-to-article` → skills.sh** — packaged the dictation→article pipeline as111 a public skill (`npx skills add axelfreeman/voice-to-article`), released v2.2.0.1122. **A static travel site (`spbilo.ru`)** — voice notes → frames → pages → gallery →113 map. 20 pages, 3 languages, deployable from a laptop.1143. **Deploying next to someone else's Docker app** — one server, their container on115 port 80. The move: add your OWN `server_name` block, mount your static as a116 volume, don't touch their config. Nginx routes by Host header.117 (`scripts/nginx-vhost.conf`)1184. **HTTPS in one shot** — `certbot certonly --webroot`, then 301 http→https.1195. **Privacy analytics (Umami)** — self-hosted, one `data-website-id` per site,120 an idempotent inserter script on a timer. (`scripts/insert-tracker.py`)1216. **SEO/AEO hardening** — self-canonical on every page, sitemap, `llms.txt` +122 `AGENTS.md`, explicit AI-bot allows in robots.txt, `datePublished` on articles.123124**The "critical" list (what actually mattered):**125126- canonical + sitemap + robots are the floor, not the ceiling;127- orphan pages kill internal linking — give every page an inbound link;128- a page linked from nowhere might as well not exist;129- AI bots (GPTBot, ClaudeBot, PerplexityBot) must be allowed or you can't be cited.130131## For the technical folks — the code132133Non-programmers don't write this by hand; an AI agent runs it. But it's here,134copy-paste, MIT, no magic:135136| File | What it does |137|---|---|138| `scripts/insert-tracker.py` | Idempotent analytics/tracker insertion across all `.html` |139| `scripts/fix-canonical.py` | Adds self-canonical to every page missing one |140| `scripts/generate-sitemap.py` | Emits a valid `sitemap.xml` from a page list |141| `scripts/nginx-vhost.conf` | Static-site vhost that coexists with a Docker neighbor + HTTPS |142143Each is a plain Python/nginx file — no framework, no build step, no dependencies.144145## Pitfalls146147- **Never badge to a link that doesn't exist** (Discord/X/docs). A dead badge is worse than none.148- **The engine is additive** — wrap existing substance, don't delete it.149- **LICENSE is non-negotiable** — repos without one are legally unlicensed.150- **Pinned repos API 404s** — pin manually in the UI.151- **GitHub Pages needs a public repo** on the free tier.152- **git push needs a token** — after `gh repo create`, the HTTPS remote has no token.153- **Verify via `gh api`, not the push exit code.**154155## Verification156157- [ ] Every public repo has a LICENSE file (check `gh api repos/<owner>/<repo>/license`)158- [ ] Every repo README has: agentic tagline, badge row, star CTA, "How it works", "Works with"159- [ ] Profile README has role, stack, projects, metrics, contact160- [ ] Badges all point to real URLs (no dead links)161- [ ] Starter texts exist in EN + RU for the AI-agent block