Skill

professional-init-project

Initializes open-source projects with GitHub best practices and git branching strategy. Triggers when setting up new repositories with standardized configuration, Gradle Kotlin DSL, or Python/uv support.

From development
Install
1
Run in your terminal
$
npx claudepluginhub talent-factory/claude-plugins --plugin development
Tool Access

This skill uses the workspace's default tool permissions.

Supporting Assets
View in Repository
README.md
config/project_types.json
scripts/generators/__init__.py
scripts/generators/common.py
scripts/generators/java_gradle.py
scripts/generators/python_uv.py
scripts/git_initializer.py
scripts/main.py
templates/README.md
Skill Content

Professional Init-Project Workflow

This skill guides you through project initialization. Follow these instructions step by step.

IMPORTANT RULES

  1. Java projects ALWAYS use Gradle Kotlin DSL - NEVER Maven!
  2. Initial commit MUST be made via /git-workflow:commit - NEVER use git commit directly!
  3. Git branching: develop -> main is the default

Step 1: Detect Project Type and Parameters

Analyze the user's arguments:

ArgumentProject TypeBuild Tool
--javaJavaGradle Kotlin DSL (NOT Maven!)
--uvPythonuv
--gitStandard-
--nodeNode.jsnpm/pnpm

Optional arguments:

  • --name "xyz": Project name
  • --no-branching: Only main, no develop

Step 2: Create Project Directory

# If --name is specified
mkdir -p <project-name>
cd <project-name>

Step 3: Initialize Git Repository

# Initialize repository
git init

# Switch to develop branch (default)
git checkout -b develop

If --no-branching: Use git branch -M main instead


Step 4: Generate Project Structure

For --java: Gradle Kotlin DSL Project

IMPORTANT: ALWAYS use Gradle, NEVER Maven!

Create the following files:

build.gradle.kts:

plugins {
    java
    application
}

group = "com.example"
version = "0.1.0"

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(platform("org.junit:junit-bom:5.11.4"))
    testImplementation("org.junit.jupiter:junit-jupiter")
    testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

application {
    mainClass = "com.example.App"
}

tasks.test {
    useJUnitPlatform()
    testLogging {
        events("passed", "skipped", "failed")
    }
}

settings.gradle.kts:

rootProject.name = "<project-name>"

Directory structure:

<project-name>/
├── build.gradle.kts
├── settings.gradle.kts
├── gradle/wrapper/gradle-wrapper.properties
├── gradlew (executable)
├── gradlew.bat
├── src/main/java/com/example/App.java
├── src/main/resources/
├── src/test/java/com/example/AppTest.java
└── src/test/resources/

gradle/wrapper/gradle-wrapper.properties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

.gitignore (Java/Gradle):

# Gradle
.gradle/
build/
!gradle/wrapper/gradle-wrapper.jar

# IDE
.idea/
*.iml
.vscode/

# OS
.DS_Store

For --uv: Python Project

Use uv init if available, otherwise create manually:

uv init <project-name> || mkdir -p src/<package_name> tests

Step 5: Create Community Standards

Create these files in every project:

  • LICENSE (MIT as default)
  • README.md (with badges and structure)
  • CONTRIBUTING.md (Contribution Guidelines)
  • CODE_OF_CONDUCT.md (Contributor Covenant 2.1)
  • SECURITY.md (Security Policy)

Step 6: Create GitHub Templates

Create .github/ directory with:

  • ISSUE_TEMPLATE/bug_report.yml
  • ISSUE_TEMPLATE/feature_request.yml
  • ISSUE_TEMPLATE/config.yml
  • PULL_REQUEST_TEMPLATE.md

Step 7: Create Initial Commit

IMPORTANT: ALWAYS use the /git-workflow:commit command!

Invoke the skill:

/git-workflow:commit

The commit skill will:

  1. Stage all files
  2. Run pre-commit checks
  3. Create a professional commit with Emoji Conventional Commit format

NEVER use git commit directly!


Step 8: Create Main Branch

After the initial commit on develop:

# Create main branch from develop (synchronized)
git branch main

Step 9: Completion

Display to the user:

Git repository initialized
Branch 'develop' created (active)
Project structure generated (<project-type>)
Community standards created
GitHub templates created
Initial commit created (via /git-workflow:commit)
Branch 'main' created (synchronized with develop)

Project ready: <project-name>/
   Branch: develop (active)

   Next steps:
   - Java: ./gradlew build
   - Python: uv venv && source .venv/bin/activate

Summary of Key Rules

RuleDescription
Gradle, not MavenJava projects ALWAYS use Gradle Kotlin DSL
Commit via skillInitial commit ALWAYS via /git-workflow:commit
develop -> mainDefault branching strategy
Java 21Current LTS version
JUnit 5Standard test framework
Stats
Parent Repo Stars3
Parent Repo Forks0
Last CommitFeb 27, 2026