| name | project-init |
| description | Use when a non-developer user wants to create a new automation tool project. Sets up Python environment, project structure, and CLAUDE.md context file. Guides through environment setup โ context gathering โ structure initialization in user's preferred language. |
Project Init
Overview
This skill initializes new automation tool projects for non-developers. It guides users through Python installation, gathers project context, and sets up a standardized documentation-driven project structure.
Use this skill when:
- User wants to start a new automation project
- User mentions creating a tool for their work
- User asks how to begin with AI-assisted coding
Workflow
Step 1: Check Python Installation
Goal: Ensure Python 3.12+ is installed before proceeding.
Process:
-
Ask user about their operating system (if not already known):
- "์ด๋ค ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ์๋์? (Windows / macOS / Linux)"
- "Which operating system are you using? (Windows / macOS / Linux)"
-
Check if Python is installed:
python --version
python3 --version
-
If Python is NOT installed or version < 3.12:
- Read the appropriate setup guide based on OS:
- macOS:
assets/SETUP-python-macos.md
- Windows:
assets/SETUP-python-windows.md
- Linux:
assets/SETUP-python-linux.md
- Present the setup instructions in user's preferred language
- Guide user through installation step by step
- Wait for user to complete installation and verify
-
If Python 3.12+ is installed:
- Confirm version: "Python 3.12.x๊ฐ ์ค์น๋์ด ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ก ์งํํ๊ฒ ์ต๋๋ค."
- Proceed to Step 2
Important:
- Language constraint explanation: Explain to user in their preferred language why we use Python:
- Best for data processing and automation
- Easy to install and use
- Rich ecosystem for common tasks
- TypeScript support can be added later if needed (e.g., n8n workflows)
Step 2: Gather User Context
Goal: Understand user's background, work domain, and project goals to personalize guidance.
Process:
-
Load the question reference:
Read: references/user-context-questions.md
-
Ask questions naturally (don't interrogate, have a conversation):
- Preferred communication language
- Work domain and tool purpose
- Technical background
- Confirm project type (Python-based local execution)
-
Example conversation flow:
AI: ์๋
ํ์ธ์! ์ด๋ค ๋ถ์ผ์์ ์ผํ์๋์?
๊ทธ๋ฆฌ๊ณ ์ด ๋๊ตฌ๋ก ๋ฌด์์ ์๋ํํ๊ณ ์ถ์ผ์ ๊ฐ์?
User: ๋ง์ผํ
ํ์์ ์ผํ๊ณ , ๋งค์ผ ๋ฆฌํฌํธ ๋ง๋๋ ๊ฑธ ์๋ํํ๊ณ ์ถ์ด์.
AI: ์ข์ต๋๋ค! ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์์ผ์ ๊ฐ์?
User: ์์
ํจ์๋ ์ธ ์ค ์์ง๋ง ์ฝ๋ฉ์ ์ฒ์์ด์์.
AI: ์๊ฒ ์ต๋๋ค. Python ๊ธฐ๋ฐ์ผ๋ก ์ปดํจํฐ์์ ์ง์ ์คํ๋๋ ๋๊ตฌ๋ฅผ
๋ง๋ค๊ฒ ๋ฉ๋๋ค. ๋จผ์ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค...
-
Store answers mentally (you'll use them in Step 3)
Reference: references/user-context-questions.md contains detailed question flow and examples.
Step 3: Create CLAUDE.md
Goal: Create a project-specific context file that will guide all future AI interactions.
Process:
-
Load the template:
Read: assets/CLAUDE.md.template
-
Fill in placeholders with answers from Step 2:
{{PREFERRED_LANGUAGE}} โ e.g., "ํ๊ตญ์ด" or "English"
{{WORK_DOMAIN}} โ e.g., "๋ง์ผํ
"
{{TOOL_PURPOSE}} โ e.g., "๋งค์ผ ํ๋ ๋ฆฌํฌํธ ์๋ํ"
{{TECHNICAL_BACKGROUND}} โ e.g., "์์
ํจ์๋ ์ธ ์ค ์์ง๋ง ์ฝ๋ฉ์ ์ฒ์"
{{PROJECT_TYPE}} โ "Python automation tool"
{{DETAILED_TOOL_PURPOSE}} โ More detailed explanation if user provided
{{KEY_REQUIREMENTS}} โ Specific requirements mentioned by user
{{CONSTRAINTS}} โ Any constraints (time, resources, etc.)
-
Write CLAUDE.md to project root:
Write: CLAUDE.md (with filled template)
-
Confirm with user:
- "CLAUDE.md ํ์ผ์ ์์ฑํ์ต๋๋ค. ์ด ํ์ผ์ ์์ผ๋ก AI๊ฐ ํ๋ก์ ํธ๋ฅผ ์ดํดํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค."
- "Created CLAUDE.md file. This will help AI understand your project context."
Step 4: Initialize Project Structure
Goal: Create standardized directory structure for documentation-driven development.
Process:
-
Run the initialization script:
python scripts/init_structure.py
Or if user wants a specific directory:
python scripts/init_structure.py /path/to/project
-
The script creates:
โโโ docs/
โ โโโ knowledge-base/ # Domain knowledge, setup guides, API docs
โ โโโ plans/ # Implementation plans (PLN-XXX-YYYY-MM-DD-name.md)
โ โโโ architecture/ # Component descriptions (how things work)
โโโ src/ # Source code
โโโ tests/ # Test files
โโโ .gitignore
-
Create .gitignore:
The init_structure.py script automatically copies the gitignore template.
Template includes:
- Python artifacts (pycache, *.pyc, etc.)
- Virtual environments (venv/, env/, etc.)
- IDE files (.vscode/, .idea/, etc.)
- Environment variables (.env, .env.local)
- Configuration files (config.yaml, config.json, credentials.json) โ Security!
- Test artifacts (.pytest_cache/, .coverage, etc.)
-
Initialize git repository (if not already initialized):
git init
git add .
git commit -m "Initial project structure"
-
Explain the structure to user in their preferred language:
docs/ - ๋ชจ๋ ์ง์์ ์ฌ๊ธฐ์ ๋ฌธ์๋ก ์ ์ฅ๋ฉ๋๋ค
docs/plans/ - ๊ตฌํ ๊ณํ์ด PLN-001, PLN-002 ํ์์ผ๋ก ์ ์ฅ๋ฉ๋๋ค
src/ - ์ค์ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋๋ค
tests/ - ํ
์คํธ ํ์ผ์ด ๋ค์ด๊ฐ๋๋ค
Step 5: Next Steps Guidance
Goal: Guide user to the next skill (plan) and set expectations.
Process:
-
Explain the overall workflow:
ํ๋ก์ ํธ ์ด๊ธฐํ ์๋ฃ! โ
๋ค์ ๋จ๊ณ:
1. [plan] - ๋ฌด์์ ๋ง๋ค์ง ๊ตฌ์ฒด์ ์ผ๋ก ๊ณํํ๊ธฐ
2. [implement] - ๊ณํ์ ์ฝ๋๋ก ๊ตฌํํ๊ธฐ
3. [debug] - ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ํด๊ฒฐํ๊ธฐ
"plan ์คํฌ์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค" ๋ผ๊ณ ๋ง์ํด์ฃผ์ธ์.
-
Remind about CLAUDE.md:
- "CLAUDE.md ํ์ผ์ ํ๋ก์ ํธ ๋ฃจํธ์ ์์ต๋๋ค"
- "์์ผ๋ก ๋ชจ๋ AI ๋ํ์์ ์ด ํ์ผ์ ์ฐธ๊ณ ํฉ๋๋ค"
- "ํ์ํ๋ฉด ์ธ์ ๋ ์์ ํ ์ ์์ต๋๋ค"
-
Set expectations about Documentation = Source of Truth:
- ๋ชจ๋ ์ง์์ ๋ฌธ์(docs/)์ ์ ์ฅ๋ฉ๋๋ค
- ์ฝ๋๋ ๋ธ๋๋ฐ์ค ๊ตฌํ์
๋๋ค
- ๋ณ๊ฒฝ์ฌํญ์ ๋ฌธ์์ ๋จผ์ ๋๋ ๋์์ ๋ฐ์๋ฉ๋๋ค
Key Principles
Documentation-Driven Development
All knowledge lives in docs, code is black box implementation.
docs/knowledge-base/ - Domain knowledge, setup guides, API references
docs/plans/ - Implementation plans with Plan IDs (PLN-001, PLN-002, ...)
docs/architecture/ - How components work
Why?
- Non-developers understand documentation better than code
- AI can read docs to understand context without parsing code
- Changes are tracked in human-readable format
Plan ID System
- Format:
PLN-001-YYYY-MM-DD-name.md
- Auto-incremented (PLN-001, PLN-002, ...)
- Used in git commit messages for traceability
- Example:
PLN-001-2025-10-26-daily-report-automation.md
Language Constraint (Python)
Month 1: Python only (TypeScript deferred based on demand)
Reasons explained to user:
- Best for data processing and automation (primary use case)
- Easy to install and use
- Rich ecosystem for common automation tasks
- TypeScript support can be added as an extension if needed (e.g., n8n workflows)
Communication Language
All communication with user must be in their preferred language (stored in CLAUDE.md).
- If user starts in Korean โ Korean
- If user starts in English โ English
- If unclear โ Ask: "์ด๋ค ์ธ์ด๋ก ๋ํํ๋ ๊ฒ์ด ํธํ์ธ์? (ํ๊ตญ์ด / English)"
Troubleshooting
Python installation fails
macOS:
- Homebrew permission issues โ Don't use sudo, run
brew doctor
- Command not found โ Restart terminal, check PATH
Windows:
- "python not recognized" โ Check "Add Python to PATH" was selected
- Permission denied โ Run as Administrator or change execution policy
Linux:
- python3.12 not found โ Add deadsnakes PPA (Ubuntu/Debian)
- venv module missing โ Install python3.12-venv package
Solution: Refer user to the appropriate SETUP guide and walk through step-by-step.
User has existing project structure
Don't overwrite!
-
Ask user if they want to:
- Create in new directory
- Merge with existing structure (careful!)
- Skip structure creation (only create CLAUDE.md)
-
If merging:
- Check for conflicts
- Ask permission before creating each directory
- Don't overwrite existing files
User wants TypeScript instead of Python
Explain the constraint:
- Current version supports Python only
- TypeScript can be added later as an extension
- For n8n workflows, TypeScript can be integrated when needed
If user insists:
- Acknowledge the limitation
- Offer to proceed with Python and note TypeScript as future extension
- Or defer to program facilitator for special cases
Resources Used
assets/
CLAUDE.md.template - Project context template
SETUP-python-macos.md - macOS Python 3.12 installation guide
SETUP-python-windows.md - Windows Python 3.12 installation guide
SETUP-python-linux.md - Linux Python 3.12 installation guide
gitignore-python.template - Python project .gitignore template
scripts/
init_structure.py - Cross-platform project structure initialization (Python)
references/
user-context-questions.md - Detailed user context gathering guide with examples
Example Session
User: ์ ํ๋ก์ ํธ ์์ํ๊ณ ์ถ์ด์
AI: [Loads project-init skill]
AI: ์ข์ต๋๋ค! ๋จผ์ Python์ด ์ค์น๋์ด ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
์ด๋ค ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ์๋์? (Windows / macOS / Linux)
User: macOS์
AI: [Checks Python version]
Python 3.12.2๊ฐ ์ค์น๋์ด ์์ต๋๋ค. โ
์ด์ ํ๋ก์ ํธ์ ๋ํด ๋ช ๊ฐ์ง ์ฌ์ญค๋ณผ๊ฒ์.
์ด๋ค ๋ถ์ผ์์ ์ผํ์๋์? ๊ทธ๋ฆฌ๊ณ ์ด ๋๊ตฌ๋ก ๋ฌด์์ ์๋ํํ๊ณ ์ถ์ผ์ ๊ฐ์?
User: ๋ง์ผํ
ํ์์ ์ผํ๊ณ , ๋งค์ผ ์ฌ๋ฌ ํ๋ซํผ์์ ๋ฐ์ดํฐ ๋ชจ์์
๋ฆฌํฌํธ ๋ง๋๋๋ฐ ์ด๊ฑธ ์๋ํํ๊ณ ์ถ์ด์
AI: ์ข์ ํ๋ก์ ํธ๋ค์! ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์์ผ์ ๊ฐ์?
User: ์์
ํจ์๋ ์ธ ์ค ์๋๋ฐ ์ฝ๋ฉ์ ์ฒ์์ด์์
AI: ์๊ฒ ์ต๋๋ค. Python ๊ธฐ๋ฐ์ผ๋ก ์งํ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์๋ํ์ ์ต์ ํ๋์ด ์์ด์
- ์ค์น์ ์ฌ์ฉ์ด ์ฝ์ต๋๋ค
- ๋์ค์ ํ์ํ๋ฉด TypeScript๋ ์ถ๊ฐํ ์ ์์ต๋๋ค
[Creates CLAUDE.md with context]
[Runs init_structure.py]
[Creates .gitignore]
[Initializes git]
ํ๋ก์ ํธ ์ด๊ธฐํ ์๋ฃ! โ
๋ค์ ๋จ๊ณ:
1. [plan] - ๋ฌด์์ ๋ง๋ค์ง ๊ตฌ์ฒด์ ์ผ๋ก ๊ณํํ๊ธฐ
2. [implement] - ๊ณํ์ ์ฝ๋๋ก ๊ตฌํํ๊ธฐ
3. [debug] - ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ํด๊ฒฐํ๊ธฐ
"plan ์คํฌ์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค" ๋ผ๊ณ ๋ง์ํด์ฃผ์ธ์.