ð€ Claude Codeã®ã¹ããŒã¿ã¹ã¡ãã»ãŒãžå®å šã¬ã€ã - Sock-hoppingã£ãŠäœ?
ã¯ããã«
Claude Code ã䜿ã£ãŠãããšãç»é¢ã«ãSock-hopping...ããNoodling...ããMoseying...ããšãã£ãè¬ã®ã¹ããŒã¿ã¹ã¡ãã»ãŒãžã衚瀺ãããããšã«æ°ã¥ããããšã¯ãããŸããã?ð€
å®ã¯ããã㯠Claude Code ãäœæ¥äžã§ããããšã瀺ãã¹ããŒã¿ã¹ã¡ãã»ãŒãžã§ã50çš®é¡ä»¥äžãååšããŸã!ãã®èšäºã§ã¯ããããã®ã¹ããŒã¿ã¹ã®æå³ãšãClaude Code ã®åçš®ã¹ããŒã¿ã¹æ©èœã«ã€ããŠãå®äŸã亀ããªããåªãã解説ããŸãð¡
ð ç®æ¬¡
ãã®èšäºã¯ãåºæ¬ç·šããšã詳现線ãã«åãããŠããŸããå¿ èŠãªéšåããèªãã§ãã ãã!
åºæ¬ç·š:
詳现線:
åºæ¬ç·š
å®è¡äžã¹ããŒã¿ã¹ã¡ãã»ãŒãž
Claude Code ãäœæ¥äžã«è¡šç€ºãããããã®æ¥œããã¡ãã»ãŒãžãã¡ã§ããå®ã¯å š54çš®é¡ãããŸã!
ð å šã¹ããŒã¿ã¹ã¡ãã»ãŒãžäžèЧ
const MESSAGES = [
'Accomplishing', // éæäž
'Actioning', // å®è¡äž
'Actualizing', // å®çŸäž
'Baking', // çŒãäžãäž
'Brewing', // éžé äž
'Calculating', // èšç®äž
'Cerebrating', // çèäž
'Churning', // ããæ··ãäž
'Clauding', // Claudeåäž(!)
'Coalescing', // èåäž
'Cogitating', // æçŽ¢äž
'Computing', // ã³ã³ãã¥ãŒãã£ã³ã°äž
'Conjuring', // å¬åäž
'Considering', // æ€èšäž
'Cooking', // æçäž
'Crafting', // äœæäž
'Creating', // åµé äž
'Crunching', // åŠçäž
'Deliberating', // çæ
®äž
'Determining', // 決å®äž
'Doing', // å®è¡äž
'Effecting', // 圱é¿äž
'Finagling', // 工倫äž
'Forging', // éé äž
'Forming', // 圢æäž
'Generating', // çæäž
'Hatching', // åµåäž
'Herding', // éçŽäž
'Honking', // ã¯ã©ã¯ã·ã§ã³äž(!)
'Hustling', // 奮éäž
'Ideating', // ã¢ã€ãã¢åºãäž
'Inferring', // æšè«äž
'Manifesting', // å
·çŸåäž
'Marinating', // ããªãäž
'Moseying', // ã®ãã³ãç§»åäž
'Mulling', // ãã£ããèãäž
'Mustering', // éçµäž
'Musing', // çæ³äž
'Noodling', // 詊è¡é¯èª€äž
'Percolating', // 浞éäž
'Pondering', // çèäž
'Processing', // åŠçäž
'Puttering', // ãã£ããäœæ¥äž
'Reticulating', // ç¶²ç®åœ¢æäž
'Ruminating', // åè»äž
'Schlepping', // 鿬äž
'Shucking', // æ®»ããäž
'Simmering', // ãšãç«ã§ç
®èŸŒã¿äž
'Smooshing', // æŒãã€ã¶ãäž
'Spinning', // å転äž
'Stewing', // ç
®èŸŒã¿äž
'Synthesizing', // çµ±åäž
'Thinking', // æèäž
'Transmuting', // 倿äž
'Vibing', // ããªããªäž
'Working', // äœæ¥äž
]
ð€ ãªããããªã«ããªãšãŒã·ã§ã³ãããã®?
ããã¯åãªãéã³å¿ã ãã§ã¯ãªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹åäžã®ããã®å·¥å€«ã§ã:
- åŸ ã¡æéã®éå±ãã軜æž: æ¯åãProcessing...ãã ãšå調ã§ããããNoodling...ãããVibing...ãã ãšå°ã楜ãããªããŸã
- äœæ¥ã®é²è¡ã瀺å: å®éã«ã¯åäžã®ã¡ãã»ãŒãžã§ãããããªãšãŒã·ã§ã³ãããããšã§ãäœãé²ãã§ããããšæããããŸã
- Anthropicã®ãã©ã³ãã£ã³ã°: éã³å¿ã®ããã¡ãã»ãŒãžã¯ãAnthropic ã®èŠªãã¿ãããäŒæ¥æåã衚çŸããŠããŸã
ð¡ å®éã®äœ¿çšäŸ
# Claude Code ãèµ·å
$ claude
# ããã³ãããå
¥å
> ãã®ãããžã§ã¯ãã® README ãäœæããŠ
# ãããšç»é¢ã«è¡šç€ºããã
Moseying... # ã®ãã³ãç§»åããªããèãäž
Cogitating... # æ·±ãæçŽ¢äž
Crafting... # README ãäœæäž
æèã¢ãŒã
Claude Code ã«ã¯ãè€éãªåé¡ã«å¯ŸããŠããæ·±ãèããããã®æèã¢ãŒãããããŸãã
ð¯ æèã¢ãŒãã®çš®é¡
Claude Code ã§ã¯ãç¹å®ã®ããŒã¯ãŒãã䜿ãããšã§æèã®æ·±ãã調æŽã§ããŸã:
| ããŒã¯ãŒã | æèäºç® | 䜿çšã·ãŒã³ |
|---|---|---|
think |
äœ | éåžžã®åé¡è§£æ±º |
think hard |
äž | ããè€éãªåé¡ |
think harder |
é« | è€éãªåé¡ |
ultrathink |
æå€§ | éåžžã«è€éãªåé¡ |
ð 䜿çšäŸ
# éåžžã®æèã¢ãŒã
> ãã®ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããŠ
# æ·±ãæèã¢ãŒããæç€ºçã«æå®
> think hard ãã®ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããŠ
# ãã詳现ãªåæãšææ¡ãè¿ã£ãŠãã
# æå€§ã®æèã¢ãŒãã䜿çš
> ultrathink ãã®éåæåŠçã®ãããããã¯ãç¹å®ããŠ
# éåžžã«è©³çްãªåæãšè€æ°ã®è§£æ±ºçãææ¡ããã
ð Tab ããŒã§ã®ãã°ã«
v2.0.0 以éãTab ããŒãæŒãããšã§æèã¢ãŒãã® ON/OFF ãåãæ¿ããããŸã[4]:
# ã»ãã·ã§ã³äžã« Tab ããŒãæŒã
[Tab] â æèã¢ãŒã ON
[Tab] â æèã¢ãŒã OFF
æèã¢ãŒãã®ç¶æ 㯠UI ã«è¡šç€ºãããæ¬¡åã®ã»ãã·ã§ã³ã«ãåŒãç¶ãããŸã(sticky)ã
ã¹ããŒã¿ã¹ã©ã€ã³
ã¿ãŒããã«ã®äžéšã«è¡šç€ºããããçŸåšã®ç¶æ ãç€ºãæ å ±ããŒã§ãã
ð ããã©ã«ãã§è¡šç€ºãããæ å ±
å žåçãªã¹ããŒã¿ã¹ã©ã€ã³ã«ã¯ä»¥äžã衚瀺ãããŸã:
[claude-code] main | Claude Sonnet 4 | ð¥ 1.2K tokens | ~/project/my-app
-
ãªããžããªå:
claude-code -
ãã©ã³ã:
main -
ã¢ãã«:
Claude Sonnet 4 -
ããŒã¯ã³äœ¿çšé:
1.2K tokens -
çŸåšã®ãã£ã¬ã¯ããª:
~/project/my-app
ðš ã«ã¹ã¿ãã€ãºäŸ
ã¹ããŒã¿ã¹ã©ã€ã³ã¯ /statusline ã³ãã³ãã§ã«ã¹ã¿ãã€ãºã§ããŸã:
# ã¹ããŒã¿ã¹ã©ã€ã³ã«é
ç®ã远å
/statusline add Model | Git Branch | Tokens | Directory
# ã¹ã¯ãªããã§åçãªæ
å ±ã远å
/statusline add $(date +%H:%M) | Cost: $0.05
詳现線
ããé«åºŠãªäœ¿ãæ¹ãç¥ãããæ¹åãã®ã»ã¯ã·ã§ã³ã§ãã
ããã¯ã·ã¹ãã (詳现)
Claude Code ã®**ããã¯(Hooks)**ã¯ãç¹å®ã®ã€ãã³ãçºçæã«èªåçã«ã³ãã³ããå®è¡ããä»çµã¿ã§ã[8][9]ã
ð£ äž»èŠãªããã¯ã€ãã³ã
| ã€ãã³ã | çºç«ã¿ã€ãã³ã° | ãããã¯å¯èœ | çšé |
|---|---|---|---|
SessionStart |
ã»ãã·ã§ã³éå§æ | â | ç°å¢åæåãGit ç¶æ ã®èªã¿èŸŒã¿ |
UserPromptSubmit |
ããã³ããéä¿¡æ | â | ããã³ããã®æ€èšŒã远å ã³ã³ããã¹ãã®æ³šå ¥ |
PreToolUse |
ããŒã«å®è¡å | â | å±éºãªæäœã®é²æ¢ããã¡ã€ã«ä¿è· |
PostToolUse |
ããŒã«å®è¡åŸ | â | ãã°èšé²ãéç¥éä¿¡ |
SubagentStop |
ãµããšãŒãžã§ã³ãçµäºæ | â | ã¿ã¹ã¯å®äºã®ç¢ºèª |
Stop |
ã»ãã·ã§ã³åæ¢æ | â | ã¯ãªãŒã³ã¢ããåŠç |
PreCompact |
ã³ã³ããã¹ãå§çž®å | â | ãã©ã³ã¹ã¯ãªããã®ããã¯ã¢ãã |
Notification |
éç¥çºçæ | â | ã«ã¹ã¿ã éç¥åŠç |
ð ããã¯èšå®ã®äŸ
// ~/.claude/settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "node ~/.claude/hooks/protect-files.js",
"timeout": 10
}
]
}
],
"PostToolUse": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "echo 'Tool executed' >> ~/.claude/logs/activity.log"
}
]
}
]
}
}
ð å®çšäŸ: éèŠãã¡ã€ã«ã®ä¿è·
// ~/.claude/hooks/protect-files.js
const stdin = JSON.parse(
require('fs').readFileSync(0, 'utf-8')
);
const protectedFiles = [
'package.json',
'.env',
'prisma/schema.prisma'
];
const toolInput = stdin.tool_input;
const targetFile = toolInput.path;
if (protectedFiles.some(file => targetFile.includes(file))) {
console.error(JSON.stringify({
decision: 'block',
reason: `ãã¡ã€ã« ${targetFile} ã¯ä¿è·ãããŠããŸãã倿Žã«ã¯æç€ºçãªæ¿èªãå¿
èŠã§ãã`
}));
process.exit(2); // ãããã¯ã瀺ã exit code
}
process.exit(0); // èš±å¯ã瀺ã exit code
ð€ ããã¯ã®åºåå¶åŸ¡
ããã¯ã¯æ§é åããã JSON ãè¿ãããšã§ããã现ããå¶åŸ¡ãå¯èœã§ã:
// æå(ç¶è¡)
{
"continue": true
}
// ãããã¯(忢)
{
"continue": false,
"stopReason": "ãã¹ãã倱æããŸãã"
}
// ããŒã«å®è¡ã®æ¿èª
{
"decision": "approve",
"reason": "èªåæ¿èª: ã»ãŒãã¢ãŒã"
}
// ããŒã«å®è¡ã®ãããã¯
{
"decision": "block",
"reason": "æ¬çªç°å¢ãžã®å€æŽã¯æåæ¿èªãå¿
èŠã§ã"
}
ãµããšãŒãžã§ã³ã (詳现)
ãµããšãŒãžã§ã³ã(Sub-agents)ã¯ãç¹å®ã®ã¿ã¹ã¯ã«ç¹åããç¬ç«ãã Claude Code ã€ã³ã¹ã¿ã³ã¹ã§ã[3:1][10]ã
ð€ ãµããšãŒãžã§ã³ãã®ä»çµã¿
ã¡ã€ã³ãšãŒãžã§ã³ã (Claude Code)
âââ ãµããšãŒãžã§ã³ã A (ã»ãã¥ãªãã£ã¬ãã¥ãŒæ
åœ)
âââ ãµããšãŒãžã§ã³ã B (ããã©ãŒãã³ã¹ãã§ãã¯æ
åœ)
âââ ãµããšãŒãžã§ã³ã C (ã¹ã¿ã€ã«ãã§ãã¯æ
åœ)
âââ ãµããšãŒãžã§ã³ã D (ãã¹ãã«ãã¬ããžç¢ºèªæ
åœ)
ð ãµããšãŒãžã§ã³ãã®å®çŸ©
<!-- .claude/agents/security-reviewer.md -->
# Security Reviewer Agent
ããªãã¯ã»ãã¥ãªãã£ã«ç¹åããã³ãŒãã¬ãã¥ã¢ãŒã§ãã
## ç®ç
ã³ãŒãã®è匱æ§ãç¹å®ããã»ãã¥ãªãã£ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠããã確èªããŸãã
## ãã§ãã¯é
ç®
- SQL ã€ã³ãžã§ã¯ã·ã§ã³ã®å¯èœæ§
- XSS è匱æ§
- èªèšŒã»èªå¯ã®åé¡
- ã·ãŒã¯ã¬ããæ
å ±ã®ããŒãã³ãŒã
- å®å
šã§ãªãäŸåé¢ä¿ã®äœ¿çš
## åºå圢åŒ
ååé¡ã«ã€ããŠä»¥äžãå ±å:
1. éèŠåºŠ (Critical/High/Medium/Low)
2. åé¡ã®èª¬æ
3. 圱é¿ç¯å²
4. æšå¥šãããä¿®æ£æ¹æ³
ð ãµããšãŒãžã§ã³ãã®å®è¡
# åäžã®ãµããšãŒãžã§ã³ããèµ·å
> ã»ãã¥ãªãã£ã¬ãã¥ãŒãšãŒãžã§ã³ãã䜿ã£ãŠããã®èªèšŒã³ãŒãããã§ãã¯ããŠ
# è€æ°ã®ãµããšãŒãžã§ã³ãã䞊åå®è¡
> 15åã®ç°ãªãèŠç¹(ã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ãå¯èªæ§ãªã©)ã§ãã®ã³ãŒããã¬ãã¥ãŒããŠ
ð¯ å®çšçãªãµããšãŒãžã§ã³ãã®äŸ
<!-- .claude/agents/api-documenter.md -->
# API Documentation Generator
ããªã㯠API ããã¥ã¡ã³ãäœæã®å°éå®¶ã§ãã
## ã¿ã¹ã¯
TypeScript ã®ã³ãŒããã OpenAPI 3.0 仿§ãçæããŸãã
## åºå
- ãã¹ãŠã®ãšã³ããã€ã³ãã®è©³çް
- ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®ã¹ããŒã
- èªèšŒèŠä»¶
- ãšã©ãŒã¬ã¹ãã³ã¹ã®å®çŸ©
- å®éã®äœ¿çšäŸ
## 泚æç¹
- Next.js 15 ã® App Router ã®èŠçŽã«åŸã
- Zod ã¹ããŒãããåãæšè«ãã
- å®éã®ã³ãŒããšççŸããªãããã«ãã
ã«ã¹ã¿ãã€ãºæ¹æ³ (詳现)
ð CLAUDE.md ãã¡ã€ã«
ãããžã§ã¯ãã«ãŒãã« CLAUDE.md ãé
眮ããããšã§ããããžã§ã¯ãåºæã®ã³ã³ããã¹ããåžžã«æäŸã§ããŸã[3:2]:
# ãããžã§ã¯ã: çŸå®¹å®€äºçŽã·ã¹ãã
## æè¡ã¹ã¿ãã¯
- Next.js 15 (App Router)
- TypeScript
- Prisma
- Firebase
- Tailwind CSS + shadcn/ui
## ã¢ãŒããã¯ãã£
- ãã«ãããã³ãèšèš
- LINE飿ºãã
- Google Workspace ãšã®çµ±å
## ã³ãŒãã£ã³ã°èŠçŽ
- Biome ã䜿çš(Prettier/ESLint ã¯äžäœ¿çš)
- `getServerSideProps` ã¯äœ¿çšçŠæ¢(App Router)
- API ã«ãŒã㯠`~/api/route.ts` ã®åœ¢åŒ
## ããããã¿ã¹ã¯
- ããŒã¿ããŒã¹ã¹ããŒã倿Ž: `npx prisma migrate dev`
- åçæ: `npx prisma generate`
- éçºãµãŒããŒ: `bun dev`
ðš åºåã¹ã¿ã€ã«ã®ã«ã¹ã¿ãã€ãº
.claude/output-styles/ ãã£ã¬ã¯ããªã« Markdown ãã¡ã€ã«ãé
眮ããããšã§ãClaude ã®å¿çã¹ã¿ã€ã«ãã«ã¹ã¿ãã€ãºã§ããŸã[10:1]:
<!-- .claude/output-styles/concise.md -->
---
name: Concise
description: ç°¡æœã§èŠç¹ãæŒãããåç
---
# åºåã¹ã¿ã€ã«: Concise
## åºæ¬æ¹é
- åé·ãªèª¬æãé¿ãã
- ç®æ¡æžããæŽ»çš
- ã³ãŒãäŸãåªå
- äžèŠãªå眮ãã¯çç¥
## äŸ
â æªãäŸ:
ãããŠããã®åé¡ã«ã€ããŠèããŠã¿ãŸãããããŸãæåã«...ã
â
è¯ãäŸ:
ã解決ç:
1. X ãå®è£
2. Y ãèšå®
3. Z ã§ãã¹ãã
ð ïž ã¹ããŒã¿ã¹ã©ã€ã³ã®é«åºŠãªã«ã¹ã¿ãã€ãº
è€æ°ã®ãªãŒãã³ãœãŒã¹ããŒã«ãå©çšå¯èœã§ã:
ccstatusline[5:1]
# ã€ã³ã¹ããŒã«
npm install -g ccstatusline
# èšå® UI ãèµ·å
ccstatusline
# èšå®äŸ
{
"lines": [
{
"widgets": [
{ "type": "model", "emoji": true },
{ "type": "git-branch" },
{ "type": "context-percentage" },
{ "type": "custom-text", "text": "ð" }
]
}
]
}
claudia-statusline[6:1]
Rust 補ã®é«æ§èœã¹ããŒã¿ã¹ã©ã€ã³:
# ã€ã³ã¹ããŒã«
cargo install claudia-statusline
# ç¹åŸŽ
# - SQLite ã«ããããŒã¿æ°žç¶å
# - ã¯ã©ãŠãåæãªãã·ã§ã³
# - 鲿ããŒè¡šç€º
# - ã³ã¹ãèšç®æ©èœ
ð§ èšå®ãã¡ã€ã«ã®åªå é äœ
Claude Code ã¯ä»¥äžã®é åºã§èšå®ãã¡ã€ã«ãèªã¿èŸŒã¿ãŸã:
1. ~/.claude/settings.json # ã°ããŒãã«èšå®
2. .claude/settings.json # ãããžã§ã¯ãèšå®
3. .claude/settings.local.json # ããŒã«ã«èšå®(Git管çå€)
åŸããèªã¿èŸŒãŸããèšå®ãåªå ãããŸãã
ð¯ ãŸãšã
Claude Code ã®ã¹ããŒã¿ã¹ã·ã¹ãã ã¯ãåãªãé²è¡ç¶æ³ã®è¡šç€ºã ãã§ãªãã以äžã®ãããªè±å¯ãªæ©èœãæäŸããŠããŸã:
åºæ¬æ©èœ
- â 54çš®é¡ã®å®è¡äžã¡ãã»ãŒãž: äœæ¥ã®é²è¡ã楜ãã衚瀺
- â 4段éã®æèã¢ãŒã: åé¡ã®è€éãã«å¿ããæèã®æ·±ã
- â ã«ã¹ã¿ãã€ãºå¯èœãªã¹ããŒã¿ã¹ã©ã€ã³: å¿ èŠãªæ å ±ãäžç®ã§ç¢ºèª
é«åºŠãªæ©èœ
- â 8çš®é¡ã®ããã¯ã€ãã³ã: èªååãšã»ãŒãã¬ãŒã
- â ãµããšãŒãžã§ã³ãã·ã¹ãã : 䞊ååŠçãšå°éçãªã¬ãã¥ãŒ
- â ãããžã§ã¯ãåºæã®ã³ã³ããã¹ã: CLAUDE.md ã§åžžã«æé©ãªå¿ç
ãããã®æ©èœãçµã¿åãããããšã§ãClaude Code ãèªåã®éçºã¹ã¿ã€ã«ã«æé©åã§ããŸãã
ç¹ã«éèŠãªã®ã¯:
- ð ããã¯ã§å±éºãªæäœãé²ã
- ð€ ãµããšãŒãžã§ã³ãã§å€è§çãªã¬ãã¥ãŒã宿œ
- ð ã¹ããŒã¿ã¹ã©ã€ã³ã§ãªãœãŒã¹äœ¿çšç¶æ³ãåžžã«ææ¡
ãã²ãããªãã®ã¯ãŒã¯ãããŒã«åãããŠã«ã¹ã¿ãã€ãºããŠã¿ãŠãã ãã!ðª
ð åèæç®
ð ãããã«
ãã®èšäºã Claude Code ã䜿ãããªãããã®åèã«ãªãã°å¹žãã§ãã
ééããè£è¶³ãããã°ã³ã¡ã³ãã§ãæ°è»œã«ãç¥ãããã ãã!
Happy Coding with Claude! ð
Discussion