Skip to main content

project-init

Scaffold a new project with base structure (git, README, LICENSE, CI, pre-commit). Use when starting a new project, initializing a repo, or bootstrapping Python/Node/Rust/Go.

소스 정보

저장소
laurigates/claude-plugins
최근 소스 활동
2026년 8월 7일 09:44
감지된 SKILL.md 언어
영어
스타
60
포크
6

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
created
2025-12-16T00:00:00.000Z
modified
2026-08-07T00:00:00.000Z
reviewed
2026-08-07T00:00:00.000Z
allowed-tools
Write, Bash(mkdir *), Bash(git init *), Bash(gh repo create *), Bash(pwd *), Bash(git config *), Bash(which *), SlashCommand, TodoWrite
args
<project-name> [project-type] [--github] [--private]
argument-hint
<project-name> [project-type] [--github] [--private]
disable-model-invocation
true
description
Scaffold a new project with base structure (git, README, LICENSE, CI, pre-commit). Use when starting a new project, initializing a repo, or bootstrapping Python/Node/Rust/Go.
name
project-init
# /project:init ## When to Use This Skill | Use this skill when... | Use project-discovery instead when... | |---|---| | Scaffolding a brand-new project from scratch (src/tests/docs, README, CI) | Working in an existing repo that already has structure | | Bootstrapping a Python/Node/Rust/Go codebase with universal base layout | Use project-continue instead when picking up work in an established project | | Creating a matching GitHub repository alongside the local skeleton | Use project-distill instead when extracting patterns from existing work | ## Context - Current directory: !`pwd` - Git user: !`git config user.name` `gh` availability is probed in the body, not here — see "GitHub CLI Availability". ## Parameters - `$1`: Project name (required) - `$2`: Project type (python|node|rust|go|generic) - defaults to generic - `$3`: --github flag to create GitHub repository - `$4`: --private flag for private repository ## GitHub CLI Availability Run this check first, via the **Bash tool** — `which gh`: | Result | Report to the user | Effect on `--github` | |---|---|---| | exit 0, prints a path | `GitHub CLI: available (<path>)` | repo creation proceeds | | exit 1, no output | `GitHub CLI: not installed — install from https://cli.github.com/` | skip repo creation, scaffold locally, and say so | Report the outcome either way — the availability answer is part of the skill's output, not an internal detail. This probe deliberately lives in the body rather than in `## Context`. `which` exits 1 when the tool is absent (silently — it writes nothing to stderr), and a non-zero exit from a Context backtick aborts the skill before its body runs, so `/project:init` was unusable on exactly the fresh machine it exists for (issue #2145). Run through the Bash tool, a non-zero exit is survivable and the answer is still reported. A `find` over a fixed set of bin directories was rejected as the alternative: it errors to stderr when a start directory is absent (the #1482 class, so it just moves the abort) and it cannot see `gh` installed via mise/asdf/nix/cargo, which would report a false "not installed". ## Base Project Structure Create universal project structure that all projects need: ### 1. Core Directories ```bash mkdir -p $1/{src,tests,docs,.github/workflows} cd $1 ``` ### 2. Git Setup ```bash git init ``` ### 3. Base Documentation **README.md:** ```markdown # $1 ## Description [Project description] ## Installation See [Installation Guide](docs/installation.md) ## Usage See [Usage Guide](docs/usage.md) ## Development See [Development Guide](docs/development.md) ## License MIT ``` **LICENSE:** Create standard MIT license file **.gitignore:** Create with common patterns for all languages ### 4. EditorConfig **.editorconfig:** ```ini root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.{py,rs,go}] indent_size = 4 [*.md] trim_trailing_whitespace = false ``` ### 5. Pre-commit Base Config **.pre-commit-config.yaml:** ```yaml repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-json - id: check-merge-conflict - id: detect-private-key ``` ### 6. GitHub Actions Base **.github/workflows/ci.yml:** ```yaml name: CI on: push: branches: [main, develop] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run linters run: echo "Linting step - configure based on project type" test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run tests run: echo "Testing step - configure based on project type" ``` ### 7. Makefile Base Create universal Makefile with colored output: ```makefile .PHONY: help install test lint format clean help: @echo "Available commands:" @echo " make install - Install dependencies" @echo " make test - Run tests" @echo " make lint - Run linters" @echo " make format - Format code" @echo " make clean - Clean build artifacts" install: @echo "Installing dependencies..." test: @echo "Running tests..." lint: @echo "Running linters..." format: @echo "Formatting code..." clean: @echo "Cleaning..." ``` ## Language-Specific Setup Base init creates the universal structure only. Language-specific tooling (package manager, linters/formatters, test framework, Dockerfile) is applied afterwards with the `configure-plugin` skills — see that plugin's README for the current skill list. Do not rely on a single bootstrap command; layer the configure skills you actually need. ## GitHub Repository Creation **Run this section only when the caller passed `--github` in `$ARGUMENTS`.** When the flag is absent, skip to "Final Steps" — the scaffold stays local. Requires `gh` — check "GitHub CLI Availability" above first. When `gh` is unavailable, skip this section, finish the local scaffold, and report that repo creation was skipped plus the install link. Create GitHub repository. `${4:---public}` expands to `--private` when `$4` is `--private`, otherwise to `--public` — so exactly one visibility flag is passed (never both): ```bash gh repo create $1 "${4:---public}" --clone git remote add origin https://github.com/$(gh api user -q .login)/$1.git ``` ## Final Steps 1. Initialize git hooks: `pre-commit install` 2. Make initial commit: Use SlashCommand: `/git:commit "Initial project structure"` 3. Set up CI/CD: Configure based on project type 4. Install dependencies: Use SlashCommand: `/deps:install` ## Next Steps Suggestions Suggest relevant commands based on project type: - `/test:setup` - Set up testing infrastructure - `/git:pr` - Create first PR
GitHub에서 보기