ð ã¯ãªããããŒãã§ã€ã³ããŒã/ãšã¯ã¹ããŒãå®è£ ãããäºæ ã£ã話ãVS Codeæ¡åŒµéçºã
TL;DR
| é ç® | å 容 |
|---|---|
| ð¯ 察象 | VS Codeæ¡åŒµæ©èœãJapanese Input for Claude Codeãv1.7.4 |
| ð ãããã | Guardrailsèšå®ã®ã€ã³ããŒã/ãšã¯ã¹ããŒããã¯ãªããããŒãã§å®è£ |
| ð¥ åé¡1 | ã¯ãªããããŒããä»ã®äœæ¥ã§äžæžããããŠèšå®ãæ¶ãã |
| ð¥ åé¡2 | ã€ã³ããŒãæã«ååãã³ãã¬ãŒããéè€äœæããã |
| â 解決 | ãã¡ã€ã«ããŒã¹ã«å€æŽ + ååããŒã¹ã®éè€æ€åºïŒããŒãž |
ð¬ ã¯ããã«
VS Codeæ¡åŒµæ©èœãJapanese Input for Claude Codeãã®éçºè ã§ãã
v1.7.1ã§Guardrailsèšå®ã®ã€ã³ããŒã/ãšã¯ã¹ããŒãæ©èœã远å ãããã§ããããã¯ãªããããŒãçµç±ã§æè»œã«ãããã ãšãã宿ãªå€æãèŠäºã«è£ç®ã«åºãŸããã
å®éã®åé¡ã¯ã¯ãªããããŒãçµç±ã£ãŠããšã§ã¯ãªããã§ããã»ã»ã»ã
ä»åã¯ããã®å€±æãšä¿®æ£ã®èšé²ã§ãã
ð Guardrailsæ©èœãšã¯
Claude CodeãCodexãGemini Code Assistãªã©è€æ°ã®AIã³ãŒãã£ã³ã°ã¢ã·ã¹ã¿ã³ãã«å¯ŸããŠãAIå¥ã®ããªã»ããæç€ºãèªåæ¿å ¥ããæ©èœã§ãã
äŸ: Claude CodeçšGuardrails
ãæ¥æ¬èªã§åçããŠãã ãããã³ãŒãã«ã¯ã³ã¡ã³ããä»ããŠãã ãããã
ãã®èšå®ãããŒã å ã§å ±æããããPCãç§»è¡ããŠãåŒãç¶ããããããªãšããããšã§ãã€ã³ããŒã/ãšã¯ã¹ããŒãæ©èœãå®è£ ããŸããã
ð v1.7.1: ã¯ãªããããŒãã§å®è£ ããçç±
åœåã®èšèšææ³ïŒ
ð ãJSONãã¯ãªããããŒãã«ã³ããŒ/ããŒã¹ãããã ãã§ãããããã
ð ããã¡ã€ã«ä¿åãã€ã¢ãã°ãšãåºãã®é¢åã ãã
ð ãSlackãTeamsã«è²Œãä»ããŠå
±æã§ããŠäŸ¿å©ïŒã
å®è£ ãç°¡åã§ããïŒ
// ãšã¯ã¹ããŒã
await vscode.env.clipboard.writeText(JSON.stringify(templates, null, 2));
vscode.window.showInformationMessage('ã¯ãªããããŒãã«ã³ããŒããŸãã');
// ã€ã³ããŒã
const clipboardText = await vscode.env.clipboard.readText();
const templates = JSON.parse(clipboardText);
10åã§å®è£ å®äºãå®ç§ããªãªãŒã¹ã
...ãšæã£ãŠããææãç§ã«ããããŸããã
ð¥ åé¡1: ã¯ãªããããŒãã¯ä¿¡çšã§ããªã
çºçããäºè±¡
- ãšã¯ã¹ããŒããã¿ã³ãã¯ãªãã¯ïŒJSONãã¯ãªããããŒãã«ã³ããŒãããïŒ
- ããããå¥ã®PCã«æã£ãŠãããããšSlackãéã
- äœãå¥ã®ãã®ãã³ããŒããŠããŸãïŒURLãšããã³ãŒãã¹ãããããšãïŒ
- å¥PCã§ã€ã³ããŒãããããšãããš... ãã£ãã®JSONããªã ð
æ ¹æ¬åå
ã¯ãªããããŒãã¯ãäžæçãªçœ®ãå Žæãã§ãã£ãŠãä¿åå Žæãã§ã¯ãªã
åœããåã®ããšãªãã§ãããå®è£ ããŠãããšãã¯ããã貌ãä»ããã§ããããšæ¥œèгçã«èããŠããŸããã
ð¥ åé¡2: éè€ãã³ãã¬ãŒããç¡é墿®
ãããæ¬åœã«ããã«ãªãã°ã§ããã
çºçããäºè±¡
- Guardrailsèšå®ããšã¯ã¹ããŒã
- èšå®ãå°ãç·šé
- ããäžåºŠã€ã³ããŒã
- åãååã®ãã³ãã¬ãŒãã2ã€ã«ãªã ð€Š
Before:
- Claude Code (id: abc123)
After:
- Claude Code (id: abc123) â å
ã®ãã€
- Claude Code (id: xyz789) â æ°ããäœããããã€
æ ¹æ¬åå
ã€ã³ããŒãæã®åŠçããããªã£ãŠããïŒ
// â ãã¡ãªã³ãŒã
for (const template of importedTemplates) {
// IDã§ååšãã§ãã¯
if (!existingTemplates.find(t => t.id === template.id)) {
existingTemplates.push(template); // æ°èŠè¿œå
}
}
ãšã¯ã¹ããŒãâã€ã³ããŒãã§IDãå€ããã®ã§ãååãåãã§ããæ°èŠãã³ãã¬ãŒãããšããŠè¿œå ãããŠããŸãã
ãIDã§éè€ãã§ãã¯ããšããçºæ³èªäœãããããã£ãããŠãŒã¶ãŒã«ãšã£ãŠåããã®ãã©ããã¯ãååãã§æ±ºãŸãã®ã«ã
â v1.7.3-4: ä¿®æ£å 容
ä¿®æ£1: ãã¡ã€ã«ããŒã¹ã«å€æŽ
// ãšã¯ã¹ããŒã: ãã¡ã€ã«ä¿åãã€ã¢ãã°
const uri = await vscode.window.showSaveDialog({
defaultUri: vscode.Uri.file('guardrails-settings.json'),
filters: { 'JSON': ['json'] }
});
if (uri) {
await vscode.workspace.fs.writeFile(uri, Buffer.from(JSON.stringify(templates, null, 2)));
}
// ã€ã³ããŒã: ãã¡ã€ã«éžæãã€ã¢ãã°
const uris = await vscode.window.showOpenDialog({
filters: { 'JSON': ['json'] }
});
if (uris && uris[0]) {
const content = await vscode.workspace.fs.readFile(uris[0]);
const templates = JSON.parse(content.toString());
}
ã¡ãªãã:
- èšå®ãæ°žç¶åããã
- 奜ããªã¿ã€ãã³ã°ã§ã€ã³ããŒãã§ãã
- Git管çããŠããŒã å ±æãå¯èœ
ä¿®æ£2: ååããŒã¹ã®éè€æ€åºïŒããŒãž
// â
ä¿®æ£åŸã®ã³ãŒã
let added = 0, updated = 0, skipped = 0;
for (const imported of importedTemplates) {
const existing = existingTemplates.find(t => t.name === imported.name);
if (existing) {
// ååãã³ãã¬ãŒããååš â å
å®¹ãæŽæ°
existing.content = imported.content;
existing.updatedAt = new Date().toISOString();
updated++;
} else {
// æ°èŠãã³ãã¬ãŒã â 远å
existingTemplates.push({
...imported,
id: generateNewId() // æ°ããIDãçºè¡
});
added++;
}
}
// çµæããã£ãŒãããã¯
vscode.window.showInformationMessage(
`ã€ã³ããŒãå®äº: 远å ${added}ä»¶, æŽæ° ${updated}ä»¶`
);
ãã€ã³ã:
- ååã§äžèŽå€å®ïŒIDã§ã¯ãªãïŒ
- æ¢åãã³ãã¬ãŒãã¯äžæžãæŽæ°
- æ°èŠãã³ãã¬ãŒãã®ã¿è¿œå
- åŠççµæã詳现衚瀺
ð Before / After
| é ç® | v1.7.1 (Before) | v1.7.4 (After) |
|---|---|---|
| æ¹åŒ | ã¯ãªããããŒã | ãã¡ã€ã«ä¿å/èªèŸŒ |
| æ°žç¶æ§ | â äžæžãã§æ¶ãã | â ãã¡ã€ã«ãšããŠä¿å |
| éè€åŠç | â IDã§å€å®âéè€çºç | â ååã§å€å®âããŒãž |
| ãã£ãŒããã㯠| ãã³ããŒããŸãããã®ã¿ | 远å /æŽæ°ä»¶æ°ã衚瀺 |
| å ±ææ¹æ³ | Slackçã«è²Œãä»ã | ãã¡ã€ã«ãéä» or Git管ç |
ð åŠã³
1. ã¯ãªããããŒãããä¿åå ãã«ãããª
ã¯ãªããããŒãã¯ã転éçµè·¯ãã§ãã£ãŠãä¿åå Žæãã§ã¯ãªããèšå®ã®ãšã¯ã¹ããŒãã®ããã«åŸã§äœ¿ããããããªãããŒã¿ã¯ããã¡ã€ã«ã«ä¿åãã¹ãã
2. éè€å€å®ã¯ããŠãŒã¶ãŒèŠç¹ãã§èãã
å éšIDã§å€å®ããã®ã¯ãšã³ãžãã¢èŠç¹ããŠãŒã¶ãŒã«ãšã£ãŠã®ãåããã®ãã¯äœããèããã°ãååã§å€å®ããã®ãèªç¶ã
3. åŠççµæã¯å ·äœçã«äŒãã
ãå®äºããŸãããã ãã§ãªãã远å 2ä»¶, æŽæ° 1ä»¶ãã®ããã«äœãèµ·ããããäŒãããšããŠãŒã¶ãŒã¯å®å¿ã§ããã
ãããã«
æžããŠãŠã¢ãéããŠç©Žã«éã蟌ã¿ãããªããã§ããã»ã»ã
ãç°¡åã«å®è£ ã§ããããšããŠãŒã¶ãŒã«ãšã£ãŠäœ¿ãããããã¯å¥ç©ã§ããã
ã¯ãªããããŒãã§ãµã¯ããšå®è£ â2æ¥åŸã«ãã¡ã€ã«ããŒã¹ã«æžãçŽãããšããç¡é§ãªå·¥æ°ãçºçãããŠããŸããŸãããæåãããèšå®ã®æ°žç¶åããšããèŠä»¶ãçé¢ç®ã«èããŠããã°...ã
åãèœãèžãäººãæžãã°å¹žãã§ã ð
Discussion