claude.symlink/skills/repo-init/SKILL.md
Initializes a public GitHub repo with CITATION.cff, citation.bib, LICENSE (MIT), AMA+APA CSL files, README.md with badges and citation block, and gh repo description. Use when creating a new repo, setting up project metadata, or when user mentions "repo init", "badges", "citation", "CITATION.cff", or "license setup".
npx skillsauth add htlin222/dotfiles repo-initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Sets up Hsieh-Ting Lin's standard public GitHub repository metadata: CITATION.cff, citation.bib, LICENSE, CSL files, README badges, and GitHub repo description.
Run /repo-init in any repo root. The skill auto-detects:
- [ ] Step 1: Detect repo context (name, languages, description, existing files)
- [ ] Step 2: Create CITATION.cff
- [ ] Step 3: Create citation.bib
- [ ] Step 4: Create LICENSE (MIT)
- [ ] Step 5: Download AMA + APA CSL files to csl/
- [ ] Step 6: Create or update README.md with badges + citation block
- [ ] Step 7: Set gh repo description (if gh CLI available)
family-names: "Lin"
given-names: "Hsieh-Ting"
orcid: "https://orcid.org/0009-0002-3974-4528"
github: htlin222
# Repo name
REPO_NAME=$(basename $(git rev-parse --show-toplevel 2>/dev/null || pwd))
# GitHub remote
GH_REMOTE=$(git remote get-url origin 2>/dev/null | sed 's|.*github.com[:/]||;s|\.git$||')
# e.g. "htlin222/survival-pipe"
# Primary languages (by file count)
# Check for: *.R, *.py, *.qmd, *.js, *.ts, *.go, *.rs, *.cpp, *.sh
Detect existing files — skip creating any that already exist (warn instead).
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
title: "{REPO_NAME}: {SHORT_DESCRIPTION}"
version: 0.1.0
date-released: "{CURRENT_YEAR}-01-01"
url: "https://github.com/htlin222/{REPO_NAME}"
repository-code: "https://github.com/htlin222/{REPO_NAME}"
license: MIT
authors:
- family-names: "Lin"
given-names: "Hsieh-Ting"
orcid: "https://orcid.org/0009-0002-3974-4528"
keywords:
- {auto-detect from repo content, 3-6 keywords}
abstract: >-
{One-sentence project description}
Ask the user for SHORT_DESCRIPTION and abstract if not obvious from existing README.
@software{lin{YEAR}{REPO_NAME_CLEAN},
author = {Lin, Hsieh-Ting},
title = {{REPO_NAME}: {SHORT_DESCRIPTION}},
year = {{YEAR}},
url = {https://github.com/htlin222/{REPO_NAME}},
version = {0.1.0}
}
Where REPO_NAME_CLEAN is the repo name with hyphens removed (e.g. survivalpipe).
Standard MIT License:
MIT License
Copyright (c) {YEAR} Hsieh-Ting Lin
Permission is hereby granted, free of charge, ...
Download to csl/ directory:
mkdir -p csl
# AMA 11th edition
curl -sL "https://raw.githubusercontent.com/citation-style-language/styles/master/american-medical-association.csl" -o csl/american-medical-association.csl
# APA 7th edition
curl -sL "https://raw.githubusercontent.com/citation-style-language/styles/master/apa.csl" -o csl/apa.csl
If curl/WebFetch fails, create placeholder files with a comment noting the download URL.
Auto-select badges based on detected languages and features:
Always include:
[](LICENSE)[](https://github.com/htlin222/{REPO}/stargazers)**If R detected (.R, .Rmd, renv.lock):
[](https://www.r-project.org)If Python detected (*.py, pyproject.toml, requirements.txt):
[](https://www.python.org)If Quarto detected (*.qmd, _quarto.yml):
[](https://quarto.org)If GitHub Pages / docs exist (pages/, docs/, .github/workflows/pages):
[](https://htlin222.github.io/{REPO}/)If GH Actions exist (.github/workflows/*.yml):
[](https://github.com/htlin222/{REPO}/actions/workflows/{WORKFLOW}.yml)**If TypeScript/JavaScript (.ts, .js, package.json):
[](https://www.typescriptlang.org)If Go (*.go, go.mod):
[](https://go.dev)If Rust (*.rs, Cargo.toml):
[](https://www.rust-lang.org)If README.md doesn't exist, create with full structure:
{BADGES}
# {REPO_NAME}
{One-paragraph description}
## Quick Start
{Auto-detect: setup.sh, make, npm, pip, cargo, etc.}
## Citation
If you use this project, please cite it:
**BibTeX:**
```bibtex
{citation.bib content}
<details>
<summary>AMA format</summary>
Lin HT. {REPO_NAME}: {SHORT_DESCRIPTION}. Published online {YEAR}. https://github.com/htlin222/{REPO_NAME}
</details> <details> <summary>APA format</summary>Lin, H.-T. ({YEAR}). {REPO_NAME}: {SHORT_DESCRIPTION} (Version 0.1.0) [Computer software]. https://github.com/htlin222/{REPO_NAME}
</details>This project is licensed under the MIT License.
If README.md **already exists**, append or update only the missing sections (Citation, License, badges). Do NOT overwrite existing content. Insert badges at top if none exist.
## Step 7: GitHub Repo Description
If `gh` CLI is available and authenticated:
```bash
gh repo edit htlin222/{REPO_NAME} --description "{SHORT_DESCRIPTION}"
Ask user for confirmation before running this step.
After completion, print:
Repo Init Complete:
[x] CITATION.cff
[x] citation.bib
[x] LICENSE (MIT)
[x] csl/american-medical-association.csl
[x] csl/apa.csl
[x] README.md (with badges + citation)
[ ] gh repo description (run: gh repo edit --description "...")
testing
Converts narrative medical text into Pocket Medicine bullet-style notes with proper abbreviations, then modularizes sections exceeding 20 lines into linked standalone files.
devops
Use when deploying Docker services on the local VM (hostname: vm, Pop!_OS) with Traefik reverse proxy and Homepage dashboard. Covers crane image workflow, Traefik file-provider registration, Homepage services.yaml entries, and compose templates on the traefik-proxy network.
development
Use when reviewing a data visualization or figure for clarity, checking if a graph communicates its message without additional context, or iterating on R/Python plot scripts until a naive reader can fully understand the figure.
development
Runs Vale prose linter on markdown/text files and auto-fixes issues. Use when the user asks to lint, proofread, or improve writing quality of markdown or text files.