Base project initialization that other commands can extend for language-specific setup
Initializes a new project with standardized structure, documentation, and tooling.
/plugin marketplace add laurigates/claude-plugins/plugin install project-plugin@lgates-claude-plugins<project-name> [project-type] [--github] [--private]project/pwdgit config user.namewhich gh$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 repositoryCreate universal project structure that all projects need:
mkdir -p $1/{src,tests,docs,.github/workflows}
cd $1
git init
README.md:
# $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
.editorconfig:
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
.pre-commit-config.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
.github/workflows/ci.yml:
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"
Create universal Makefile with colored output:
.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..."
Based on project type, delegate to specialized setup:
{{ if $2 == "python" }}
Use SlashCommand: /setup:new-project python
{{ elif $2 == "node" }}
Use SlashCommand: /setup:new-project node
{{ elif $2 == "rust" }}
Use SlashCommand: /setup:new-project rust
{{ elif $2 == "go" }}
Use SlashCommand: /setup:new-project go
{{ else }}
{{ endif }}
{{ if $3 == "--github" }} Create GitHub repository:
gh repo create $1 ${4:+--private} --public --clone
git remote add origin https://github.com/$(gh api user -q .login)/$1.git
{{ endif }}
pre-commit install/git:smartcommit "Initial project structure"/deps:installSuggest relevant commands based on project type:
/test:setup - Set up testing infrastructure/docs:docs - Generate documentation/lint:check - Verify code quality/github:quickpr - Create first PR