coreindustries

init

"Initialize a new project with structure, configuration, and boilerplate."

coreindustries 1 Updated 8mo ago
GitHub

Install

npx skillscat add coreindustries/core-ai-template/init

Install via the SkillsCat registry.

SKILL.md

/init

Initialize a new project with structure, configuration, and boilerplate.

Usage

/init <project_name> [--template <template>] [--stack <stack>]

Arguments

  • project_name: Name for the new project (kebab-case)
  • --template: Project template (api, cli, library, fullstack)
  • --stack: Technology stack (python, typescript, go)

Instructions

When this skill is invoked:

Agent Behavior

Autonomy:

  • Complete project setup end-to-end
  • Make reasonable technology choices based on template
  • Configure all tooling without prompting

Quality:

  • Follow best practices for the chosen stack
  • Include comprehensive .gitignore
  • Set up quality tooling (linting, testing, formatting)

Initialization Process

  1. Validate project name:

    • Must be kebab-case
    • Must not conflict with existing directories
    • Must be valid package name
  2. Determine stack (if not specified):

    • Ask user preference
    • Or detect from context
  3. Create project structure

  4. Initialize version control:

    git init
    git add .
    git commit -m "chore: initial project setup"
  5. Install dependencies

  6. Verify setup:

    {test_command}
    {lint_command}
    {build_command}

Project Templates

API (--template api)

REST/GraphQL API service:

project-name/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ api/              # Route handlers
โ”‚   โ”œโ”€โ”€ services/         # Business logic
โ”‚   โ”œโ”€โ”€ models/           # Data models
โ”‚   โ”œโ”€โ”€ middleware/       # Request middleware
โ”‚   โ”œโ”€โ”€ config/           # Configuration
โ”‚   โ””โ”€โ”€ main.{ext}        # Entry point
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ unit/
โ”‚   โ””โ”€โ”€ integration/
โ”œโ”€โ”€ docs/
โ”œโ”€โ”€ .env.example
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ {package_config}

CLI (--template cli)

Command-line application:

project-name/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ commands/         # CLI commands
โ”‚   โ”œโ”€โ”€ utils/            # Utilities
โ”‚   โ””โ”€โ”€ main.{ext}        # Entry point
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ {package_config}

Library (--template library)

Reusable library/package:

project-name/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.{ext}       # Public API
โ”‚   โ””โ”€โ”€ lib/              # Implementation
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ docs/
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ {package_config}

Fullstack (--template fullstack)

Full-stack web application:

project-name/
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ api/              # Backend API
โ”‚   โ””โ”€โ”€ web/              # Frontend app
โ”œโ”€โ”€ packages/
โ”‚   โ””โ”€โ”€ shared/           # Shared code
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ {monorepo_config}

Stack Configuration

Python (--stack python)

Package Manager: uv
Framework: FastAPI (api), Click (cli), none (library)
Testing: pytest, pytest-cov
Linting: ruff
Type Checking: mypy

Files created:

  • pyproject.toml
  • .python-version
  • src/{project}/__init__.py
  • tests/conftest.py

TypeScript (--stack typescript)

Runtime: Node.js / Bun
Package Manager: bun
Framework: Hono (api), Commander (cli), none (library)
Testing: vitest
Linting: eslint, prettier
Type Checking: tsc

Files created:

  • package.json
  • tsconfig.json
  • .eslintrc.js
  • .prettierrc
  • src/index.ts

Generated Files

Always included:

  • .gitignore (comprehensive for stack)
  • README.md (with getting started)
  • .env.example (if config needed)
  • LICENSE (MIT default)

AI Agent support:

  • CLAUDE.md (from template)
  • .claude/rules/ (universal rules, from template)
  • .claude/rules-available/ (platform rules, from template)
  • .claude/references/ (on-demand references, from template)
  • .claude/skills/ (from template)

Enable Platform Rules

Based on the chosen template and stack, symlink relevant rules from rules-available/ into rules/:

Web / Fullstack (Next.js, React):

ln -s ../rules-available/nextjs.md .claude/rules/nextjs.md
ln -s ../rules-available/security-web.md .claude/rules/security-web.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

Python (uv / FastAPI):

ln -s ../rules-available/python.md .claude/rules/python.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

API (any stack, minimal):

ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

iOS (Swift / SwiftUI):

ln -s ../rules-available/ios.md .claude/rules/ios.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

Android (Kotlin / Compose):

ln -s ../rules-available/android.md .claude/rules/android.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

Dockerized project:

ln -s ../rules-available/docker.md .claude/rules/docker.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

Mobile (React Native):

ln -s ../rules-available/security-mobile.md .claude/rules/security-mobile.md
ln -s ../rules-available/security-web.md .claude/rules/security-web.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md

Post-Init Checklist

  • Project structure created
  • Platform-specific rules symlinked
  • Dependencies installed
  • Git initialized
  • Tests pass
  • Linting passes
  • README accurate

Example Output

$ /init my-api --template api --stack python

Creating project: my-api

Template: API
Stack: Python (uv + FastAPI)

Creating directory structure...
  โœ… src/my_api/
  โœ… src/my_api/api/
  โœ… src/my_api/services/
  โœ… src/my_api/models/
  โœ… tests/unit/
  โœ… tests/integration/

Creating configuration files...
  โœ… pyproject.toml
  โœ… .python-version (3.13)
  โœ… .gitignore
  โœ… .env.example
  โœ… README.md
  โœ… CLAUDE.md

Installing dependencies...
  โœ… uv sync

Initializing git...
  โœ… git init
  โœ… Initial commit created

Running verification...
  โœ… Tests pass (2/2)
  โœ… Linting passes
  โœ… Type checking passes

Project created successfully!

Next steps:
1. cd my-api
2. cp .env.example .env
3. Edit .env with your configuration
4. uv run uvicorn src.my_api.main:app --reload
5. Visit http://localhost:8000/docs

Happy coding!