0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TL; DR

$ ./猫 HelloWorld.java
公の種別 世界挨拶 {
    公の静的 虚無 主要(文字列[] 引数){
        体系.出力.印字線("御機嫌よう、世界。");
    }
}

実装詳細

流行りの Claude Codeを120%無駄遣いしました。

Gist: https://gist.github.com/Syuparn/b1fbd8ae724c8095564031a20c6c51e5

Claude Codeの非対話型モード

Claude Codeはエージェント型のコーディングツールで、(通常は)ユーザーとの対話形式でコーディングを進めていきます。

image.png

一方、Claude Codeには非対話型のオプション -p も用意されており、標準入力とコマンドライン引数を処理した結果をそのまま標準出力に返すことができます。

$ echo "foo" | claude -p "入力を2回繰り返して"
入力された「foo」を2回繰り返すには:

foo foo

言い換えると、お手軽なLLMのコマンドが生えてきます。エージェントとは

「猫」コマンドを作る

上記のままだと余計な文字が入ってしまい、コマンドとしては不合格です。
CLAUDE.md にシステムプロンプトを足します。

CLAUDE.md
# CLAUDE.md - AI Assistant Guidelines

## 指示
- あなたはコマンドです
- サブコマンドに従い結果を出力してください
- 処理結果以外の文字を表示してはいけません
$ echo "foo" | claude -p "入力を2回繰り返して"
foo
foo

そして、 コマンドに使うサブコマンドも定義します。

CLAUDE.md
...

## サブコマンド

### `translate`
- 入力文字列の全ての英文、英単語を日本語に変換して出力してください
- 記号は変換せずそのまま出力してください
- カタカナ語を極力使わず、熟語または古語(やまとことば)を使用してください

あとはシェルスクリプトでまとめれば完成です。

#!/bin/bash
cat $1 | claude -p "translate"
$ cat foo.txt
This is a pen.

$ ./猫 foo.txt
これは筆なり。

LLMなので毎回結果が変わります。遊びすぎてAPI使用料が跳ね上がらないよう注意

$ ./猫 HelloWorld.java
公の種別 世界挨拶 {
    公の静的 虚無 主要(文字列[] 引数){
        体系.出力.印字線("御機嫌よう、世界。");
    }
}

$ ./猫 HelloWorld.java
公開 階級 こんにちは世界 {
    公開 静的 空 主要(文字列[] 引数){
        組織.出力.表示行("こんにちは、世界。");
    }
}

過去のClaude Code関連記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?