Repo Init
Bootstrap a complete repository from zero to pushed.
Steps
-
Create GitHub repo:
gh repo create <name> --<visibility> --description "<description>" --clone(default public). -
Add LICENSE: Create an Apache-2.0 LICENSE file in the repo root.
-
Scaffold: If a language is specified, invoke
scaffold-project(which dispatches toscaffold-<lang>) to produce:- CI workflow (
.github/workflows/ci.yml) and release workflow (.github/workflows/release.yml); seesetup-ci. sr.yamlfor semantic release; seesync-release.- Task runner native to the language (npm scripts, Makefile, cargo, justfile for Python).
.envrcvia thesetup-devenvdirenv pattern (vanilla direnv + per-language version manager, not a Nix dev shell).- Language-specific config (Cargo.toml, go.mod, pyproject.toml, package.json, etc.).
- CI workflow (
-
Community health: Invoke
community-healthto addCODE_OF_CONDUCT.md,SECURITY.md,.github/pull_request_template.md, and.github/ISSUE_TEMPLATE/(bug report, feature request, config). Substitute{OWNER},{REPO},{CURRENT_MAJOR}, and{CHECK_COMMAND}placeholders. For a brand-new pre-1.0 project, set{CURRENT_MAJOR}to0and rewrite the SECURITY.md supported-versions table to0.x Yes / < 0.x No. -
README: Generate a README with the repo name, description, and standard badge layout.
-
Set metadata:
gh repo edit --add-topic <topics> --description "<description>"with relevant topics for the language/type. -
Initial commit and push:
git add -A(safe here since it’s a brand new repo)git commit -m "chore: initial project scaffold"git push -u origin main
-
Report: Show the repo URL.
Rules
- Default to Apache-2.0 license.
- Default to public visibility.
- If no language is specified, create a minimal repo with just LICENSE, README, and .gitignore.
- Use conventional commits for the initial commit.