project-setup
npx skills add https://github.com/jeongheonk/c-sharp-custom-marketplace --skill project-setup
Agent 安装分布
Skill 文档
Project Setup
C#/.NET íë¡ì í¸ë¥¼ Claude Codeì©ì¼ë¡ ì´ê¸°ííë ì¤í¬. CLAUDE.md ìì±ê³¼ 컨í ì¤í¸ hook(Bash/PowerShell)ì ì¤ì¹í©ëë¤.
Arguments
$ARGUMENTS[0]: ìë¸ì»¤ë§¨ë (init|migrate|hooks)$ARGUMENTS[1]: ëì íë¡ì í¸ ê²½ë¡ (ì í, 기본ê°: íì¬ ëë í 리)
ìë¸ì»¤ë§¨ë
| 커맨ë | ì¤ëª |
|---|---|
init |
ì íë¡ì í¸ ì´ê¸°í (CLAUDE.md ìì± + hook ì¤ì¹) |
migrate |
기존 CLAUDE.mdì Context Management ì¹ì ì¶ê° + hook ì¤ì¹ |
hooks |
hook ì¤í¬ë¦½í¸ë§ ì¤ì¹/ì ë°ì´í¸ |
Workflow
Step 1: ì¸ì íì±
ìë¸ì»¤ë§¨ë = $ARGUMENTS[0] (기본ê°: "init")
ëì ê²½ë¡ = $ARGUMENTS[1] (기본ê°: íì¬ ìì
ëë í 리)
ìë¸ì»¤ë§¨ëê° init, migrate, hooks ì¤ íëê° ìëë©´:
- 첫 ë²ì§¸ ì¸ì를 ê²½ë¡ë¡ ê°ì£¼íê³ ìë¸ì»¤ë§¨ë를
initì¼ë¡ ì¤ì
Step 2: C# íë¡ì í¸ ê°ì§ (init/migrate)
hooks ìë¸ì»¤ë§¨ëì¸ ê²½ì° ì´ ë¨ê³ ê±´ëë°ê¸°.
- Globì¼ë¡ ëì ê²½ë¡ìì
.sln,.csprojíì¼ íì .csprojíì¼ë¤ì Readíì¬ ë¤ì ì ë³´ ì¶ì¶:<TargetFramework>(ì: net8.0, net9.0)<OutputType>(ì: WinExe, Exe, Library)<UseWPF>true</UseWPF>ì¬ë¶<PackageReference>ëª©ë¡ (주ì NuGet í¨í¤ì§)
- íë¡ì í¸ ì í íë³:
| OutputType | UseWPF | íë³ ê²°ê³¼ |
|---|---|---|
| WinExe | true | WPF Application |
| Exe | – | Console Application |
| Library | – | Class Library |
| – | – (WebAPI í¨í¤ì§ ìì) | ASP.NET WebAPI |
| – | – (í ì¤í¸ í¨í¤ì§ ìì) | Test Project |
- ì루ì
구조 íì
:
.slníì¼ìì íë¡ì í¸ ëª©ë¡ ì¶ì¶- src/tests ëë í 리 구조 íì¸
Step 3: Hook ì¤í¬ë¦½í¸ ì¤ì¹
OS ê°ì§: uname -s ê²°ê³¼ë¡ íê²½ íë³:
uname -s ê²°ê³¼ |
íê²½ | ì¤í¬ë¦½í¸ |
|---|---|---|
Linux |
Linux/WSL | setup.sh |
Darwin |
macOS | setup.sh |
MINGW* / MSYS* / CYGWIN* |
Git Bash/MSYS2 | setup.sh |
| ëª ë ¹ ì¤í¨ ëë ê·¸ ì¸ | Windows (native) | setup.ps1 |
Bash íê²½ (Linux/macOS/WSL):
bash <plugin-path>/skills/project-setup/scripts/setup.sh <target-dir>
PowerShell íê²½ (Windows):
pwsh <plugin-path>/skills/project-setup/scripts/setup.ps1 -TargetDir <target-dir>
<plugin-path>ë ì´ SKILL.mdì ë¶ëª¨ ëë í 리(skills/project-setup/)ì ì ë ê²½ë¡ì
ëë¤. setup ì¤í¬ë¦½í¸ê° hook íì¼ ë³µì¬, ì¤í ê¶í ì¤ì , ëë í 리 ìì±ì ìíí©ëë¤.
Step 4: CLAUDE.md ìì± ëë ì ë°ì´í¸
init ìë¸ì»¤ë§¨ë: CLAUDE.md ì ê· ìì±
Write ëêµ¬ë¡ <target>/CLAUDE.md ìì±. references/claude-md-template.md í
í릿ì 참조íì¬ Step 2ìì ê°ì§í ì ë³´ë¡ {ë³ì}를 ì¹íí©ëë¤.
- Readë¡
references/claude-md-template.mdì½ê¸° - í
í릿ì
{ë³ì}를 Step 2 ê°ì§ ê²°ê³¼ë¡ ì¹í - ì¡°ê±´ë¶ ì¹ì
ì ì©:
- WPF íë¡ì í¸ê° ìë ê²½ì°:
### WPF/MVVM Patternsì¹ì ì ê±° +Skill Workflows > Scaffoldingì¹ì ì ê±° - í
ì¤í¸ íë¡ì í¸ê° ìë ê²½ì°:
### Test Patternsì¹ì ì ê±° +Build & Test Commandsìì Test í ì ê±° - TargetFramework < net8.0ì¸ ê²½ì°:
### C# 12 Features (.NET 8)ì¹ì ìë¨ì ê²½ê³ ë ¸í¸ ì¶ê° (> â íì¬ íë¡ì í¸ë {TargetFramework}ì ëë¤. C# 12 기ë¥ì .NET 8+ ìì ì¬ì© ê°ë¥í©ëë¤.)
- WPF íë¡ì í¸ê° ìë ê²½ì°:
- Writeë¡
<target>/CLAUDE.mdìì±
migrate ìë¸ì»¤ë§¨ë: 기존 CLAUDE.mdì ì¹ì ì¶ê°
- 기존 CLAUDE.md를 Read
## Context Managementì¹ì ì´ ìì¼ë©´ Editì¼ë¡ ì¶ê°## C#/.NET Quick Referenceì¹ì ì´ ìì¼ë©´ Editì¼ë¡ ì¶ê° (í í릿ì Quick Reference ì ì²´)## Detailed Referencesì¹ì ì´ ìì¼ë©´ Editì¼ë¡ ì¶ê° (기존## C#/.NET Coding Guidelinesê° ìì¼ë©´## Detailed Referencesë¡ ë¦¬ë¤ì)## Skill Workflowsì¹ì ì´ ìì¼ë©´ Editì¼ë¡ ì¶ê°- 기존 ë´ì©ì ì ë ìì íì§ ìì
Step 5: settings.local.json ì ë°ì´í¸
- Readë¡
<target>/.claude/settings.local.jsonì½ê¸° (ìì¼ë©´ ìë¡ ìì±) - Step 3ìì ê°ì§í OSì ë°ë¼ hook command ê²°ì :
- Bash íê²½:
bash scripts/hooks/<name>.sh - PowerShell íê²½:
pwsh scripts/hooks/<name>.ps1
- Bash íê²½:
- 기존 hooks ì¤ì ì´ ìì¼ë©´ ë³í©, ìì¼ë©´ ìë¡ ì¶ê°:
Hook ë±ë¡ 구조
{
"hooks": {
"SessionStart": [{ "matcher": "", "hooks": [{ "type": "command", "command": "<runner> scripts/hooks/session-start.<ext>" }] }],
"PreCompact": [{ "matcher": "", "hooks": [{ "type": "command", "command": "<runner> scripts/hooks/pre-compact.<ext>" }] }],
"Stop": [{ "matcher": "", "hooks": [{ "type": "command", "command": "<runner> scripts/hooks/session-complete.<ext>" }] }]
}
}
<runner> / <ext> ì¹í:
| íê²½ | <runner> |
<ext> |
|---|---|---|
| Bash (Linux/macOS/WSL) | bash |
sh |
| PowerShell (Windows) | pwsh |
ps1 |
- 기존 ì¤ì ì´ ìì¼ë©´
hooksí¤ì ë³í© (기존 hookì ì ì§)
Step 6: ê²ì¦ ì²´í¬ë¦¬ì¤í¸
모ë ì¤ì¹ê° ìë£ë í ê²ì¦:
-
scripts/hooks/session-start.sh+.ps1ì¡´ì¬ -
scripts/hooks/pre-compact.sh+.ps1ì¡´ì¬ -
scripts/hooks/session-complete.sh+.ps1ì¡´ì¬ -
scripts/hooks/lib/utils.sh+utils.ps1ì¡´ì¬ - Bash ì¤í¬ë¦½í¸ ì¤í ê¶í íì¸ (Linux/macOS)
-
.claude/context/ëë í 리 ì¡´ì¬ -
.claude/learnings/ëë í 리 ì¡´ì¬ -
.claude/settings.local.jsonì hook ë±ë¡ íì¸ -
CLAUDE.mdì## C#/.NET Quick Referenceì¹ì ì¡´ì¬ (init/migrate) -
CLAUDE.mdì## Detailed Referencesì¹ì ì¡´ì¬ (init/migrate) -
CLAUDE.mdì## Skill Workflowsì¹ì ì¡´ì¬ (init/migrate) - ì¡°ê±´ë¶ ì¹ì ì ì ì ì©: WPFê° ìë ê²½ì° WPF ì¹ì ìì, í ì¤í¸ ìë ê²½ì° Test ì¹ì ìì
ê²ì¦ ì¤í¨ íëª©ì´ ìì¼ë©´ ì¬ì©ììê² ìë¦¬ê³ ìë ì¡°ì¹ ë°©ë² ìë´.
íì¬ ì ë¬ë°ì ì¸ì
ARGUMENTS: $ARGUMENTS
ì¤í ì§ì
ì ARGUMENTS를 íì±íì¬ ìí¬íë¡ì°ë¥¼ ììíì¸ì.
ARGUMENTSê° ë¹ì´ìì¼ë©´ initì 기본 ìë¸ì»¤ë§¨ëë¡ ì¬ì©íê³ , íì¬ ëë í 리를 ëìì¼ë¡ í©ëë¤.
í¸ì¶ ìì:
/project-setupâ init + íì¬ ëë í 리/project-setup initâ init + íì¬ ëë í 리/project-setup init /path/to/projectâ init + ì§ì ê²½ë¡/project-setup migrateâ 기존 CLAUDE.mdì ì¹ì ì¶ê°/project-setup hooksâ hook ì¤í¬ë¦½í¸ë§ ì¤ì¹/project-setup /path/to/projectâ init + ì§ì ê²½ë¡ (ê²½ë¡ê° ìë¸ì»¤ë§¨ëê° ìë ê²½ì°)
Error Handling
| ìí© | ì²ë¦¬ |
|---|---|
| .csproj ìì | ê²½ê³ ì¶ë ¥ í 기본 CLAUDE.md ìì± |
| CLAUDE.md ì´ë¯¸ ì¡´ì¬ (init) | ì¬ì©ììê² ë®ì´ì°ê¸° íì¸ ëë migrate ì ì |
| settings.local.json íì± ì¤í¨ | ë°±ì í ìë¡ ìì± |
| setup ì¤í¬ë¦½í¸ ì¤í ì¤í¨ | ìë¬ ë´ì© ì¶ë ¥ + ìë ì¤ì¹ ë°©ë² ìë´ |
.gitignore ìë´
ì¤ì¹ ìë£ í ì¬ì©ììê² .gitignoreì ë¤ì ì¶ê°ë¥¼ ìë´:
# Claude Code context (auto-generated, session-specific)
.claude/context/
.claude/learnings/
scripts/hooks/ë í ê³µì 를 ìí´ ì»¤ë°íë ê²ì ê¶ì¥.