Help us improve
Share bugs, ideas, or general feedback.
From agentic-dev
Bootstrap a local project onto GitHub for agent-driven development. Use when a project has files locally but no git history, no remote, or no initial commit and is about to start phase-1 implementation. Writes a project-appropriate .gitignore, decides the .claude/ versioning policy, stages files explicitly, creates the initial commit, creates the GitHub repo, verifies the push, and hands off to /track-plan.
npx claudepluginhub tarqd/skills --plugin agentic-devHow this skill is triggered — by the user, by Claude, or both
Slash command
/agentic-dev:bootstrap-repoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Take a project from "files exist locally" to "private GitHub repo with
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Create and present web-based slidedecks using Slidev with Markdown, Vue components, code highlighting, animations, interactive demos, LaTeX, and Mermaid for technical presentations, conference talks, code walkthroughs, and teaching materials.
Share bugs, ideas, or general feedback.
Take a project from "files exist locally" to "private GitHub repo with
initial commit pushed, ready for /track-plan". Each invocation does
exactly this slice — repo onboarding — and exits. Project-shaped Phase
0 work (CI, dependency policy, ADR scaffolding, CLAUDE.md verification,
README) is surfaced at the end as follow-ups but not done here.
Args: [owner/repo] [--public|--private]. Both optional; defaults are
inferred from gh api user and the cwd, then confirmed via
AskUserQuestion.
Run in parallel and inspect the results:
gh auth status — must succeed. If it doesn't, end and tell the user
to run gh auth login. Do not attempt to authenticate.git rev-parse --is-inside-work-tree — if false, git init -b main.git remote -v — if origin already exists, end with
remote 'origin' already configured: <url>. Do not modify remotes.git log --oneline -1 — note whether the repo already has commits.
If it has commits and a remote, end with "already on GitHub".
If it has commits and no remote, skip step 6 later (commit
history is reused as-is).ls docs/phases/ — if a phase-0*.md exists, read it. The project's
own definition of Phase 0 may have additional acceptance criteria
(CI, deps policy, CLAUDE.md verification, etc.). You will surface
these in step 9 but you will not do them here.Default: {gh-user}/{basename of cwd}, visibility private.
Use AskUserQuestion to confirm:
private (recommended) or public.Do not skip. Repo creation is hard to undo: the name may be taken, or — for public repos — search engines may index before you can delete.
.claude/ versioning policyUse AskUserQuestion to pick one. Recommend the first.
Selective: ignore .claude/*, allowlist shareable subdirs —
tracks skills/, hooks/, agents/; ignores settings.json
and any per-machine override:
.claude/*
!.claude/skills/
!.claude/hooks/
!.claude/agents/
Commit everything in .claude/ — including settings.json and
any local overrides. Useful if the team standardises on one config.
Ignore .claude/ entirely — nothing under .claude/ lands in
git.
.gitignoreIf .gitignore exists, augment it. Read it first, then append any
missing entries. Never overwrite.
Always add (if missing):
.DS_Store*.local.*.env.env.*!.env.example (preserve the safe-to-commit template if the repo
has one)Language entries — additive, based on presence of the marker file:
Cargo.toml → target/package.json → node_modules/, dist/, .next/pyproject.toml or setup.py → __pycache__/, *.pyc, .venv/,
dist/, build/go.mod → vendor/ (only if a vendor/ directory exists)deno.json / deno.jsonc → none requiredAppend the .claude/ block from step 3.
Never git add -A or git add .. Explicit file lists only.
git status --porcelain to enumerate working-tree entries.git add command naming every top-level file/dir
that should be tracked.target/, node_modules/, .DS_Store,
anything matching *.local.*, anything not in the .claude/
allowlist from step 3.git status after staging to verify file names. Then run
git diff --cached --stat (or git diff --cached for a full
view) to verify the content that's about to land — file
names alone can mask a stowaway .env whose contents include
secrets. If anything unexpected appears, stop and ask.Skip if git log --oneline -1 already shows a commit.
Initial commit: {project-name} scaffold.
Project-name source order: first heading of PRODUCT.md, first
heading of README.md, repo dir basename.See PRODUCT.md and docs/adr/ for design. — included only if those
files exist.git log already has any history, match the existing
commit-message style (git log --oneline -20). Otherwise use the
default above.--no-verify. Do not skip hooks.gh repo create {owner}/{name} --{visibility} --source=. --remote=origin --push
Capture the URL from stdout.
In parallel:
git remote -v — origin is set to the new URL.gh repo view {owner}/{name} --json visibility,defaultBranchRef,url
— visibility matches, default branch is main.Report: URL, visibility, default branch.
If docs/phases/phase-0*.md exists, list its task headings that this
skill did not address — typically CI pipeline, dependency policy /
deny.toml, pre-commit hooks, CLAUDE.md verification, ADR scaffold,
README polish. Do not attempt them. Flag them so the user can
slice them via /track-plan.
Suggest next step:
Run
/track-plan @docs/phases/phase-1-*.mdto plan the first implementation phase, or/track-plan @docs/phases/phase-0-*.mdif the remaining Phase-0 tasks need PR-sized slices.
git add -A or git add .. Explicit file lists only — a
single accidental add . can leak target/, .env, or local
overrides into the first public commit.git commit -am. It silently sweeps in every
tracked-but-modified file. Stage explicitly first, then commit
without -a.origin remote. If one exists, end.git reset --hard, never --no-verify.AskUserQuestion
before gh repo create. Default to private..gitignore. Augment it..git/ in an
unexpected place.origin remote exists.gh repo view {owner}/{name} succeeds for the inferred target.main branch already has commits and matches local
HEAD.Check via tool calls, never by assumption.