記事一覧
「opencode」をお仕事で使おう(1/4)
「opencode」をお仕事で使おう(2/4)
「opencode」をお仕事で使おう(4/4)
今回のお題
「既存コードの改修作業を依頼された」という想定で、以下の一連の作業を実施します。
- Gitリポジトリのクローン
- 既存コードの解析
- 作業用ブランチの作成
- 機能改修
- 動作確認
- コミット
- mainブランチへのマージ
- リモートリポジトリへのプッシュ
依頼の内容
Webベースのテキストエディタに対して、次の改修を行ってください。
【「ダウンロード」ボタンを押したときに、ダウンロードするファイル名を指定できるようにしてほしい】
対象のGitリポジトリはこちらです。
https://github.com/YamaGw/sample_text_editor.git
追加のツールのインストール
TortoiseGit
Git操作をGUIで行えるツールです。
WinMarge
ファイルの差分表示やマージをGUIで行えます。
TortoiseGit や TortoiseSVN を先にインストールしておくと、WinMerge との連携を有効にできます。

改修作業
Gitリポジトリをクローンする
TortoiseGit を使用して、デスクトップにリポジトリをクローンします。
右クリックメニューから「クローン(複製)...」を選択する。

既存コードの解析
リポジトリ内にはソースコードのみがあり、README 等のドキュメントは用意されていないようです。これは酷いですね:-P

ここでは opencode を使って既存コードの解析を行います。
クローンしたリポジトリのルートで Git Bash を起動し、opencode を開始します。

Plan エージェントに切り替えて、次のように指示します。
@src/ 配下のファイル群を解析して概要を説明して。
日本語でお願い。
動作させるにはどうすればよさそう?
※ 中身は、前回作成した Webベースのテキストエディタです。
作業用ブランチを作成
TortoiseGitを使用して、「main」ブランチを起点に作業用のブランチを作成します。ブランチ名は「workYYYYMMDD」(YYYYMMDDは日付)とします。
右クリックメニューから「ブランチを作成(B)...」を選択する。

ブランチ名を入力し、「新しいブランチに切り替える」にチェックを入れてOKする。

会話セッションを切り替える
opencode では話題ごとに /new コマンドで新しい会話セッションを開始してください。会話が長くなるとAIへの負担が大きくなり、応答が遅い、正確な応答ができない、といった問題が起きやすくなります。
Context欄に表示されるトークン数(AIとやりとりする単語数)を目安にすると判断しやすいです。

過去の会話セッションは「/session」コマンドで呼び出すことが可能です。
AGENTS.mdを作成する
「/new」で新しい会話セッションを開始したら、Build エージェントに切り替えて「/init」を実行します。
生成されたAGENTS.mdをテキストエディタで確認します。

続いて、要件を追記してもらいます。
@AGENTS.md に以下の要件を追記してください。既存の記述はそのまま維持してください。
# 役割・前提
- あなたは 優秀な IT エンジニアとして振る舞うこと。
- HTML 、 javascript および CSS に精通していることを前提とする。
# コミュニケーション方針
- すべてのやり取りは 日本語 で行うこと。
- Git のコミットメッセージ も必ず日本語で記述すること。
改修を依頼する
再度「/new」で会話セッションを切り替えます。
Planエージェントに作業方針を検討してもらいます。
# 「ドキュメント編集」画面の「ダウンロード」ボタンを押したとき、ダウンロードされるファイル名を指定できるようにしたい。仕様は以下の通り。
- ファイル名を入力するポップアップを追加する。
- ポップアップには「ファイル名」入力欄、「キャンセル」ボタン、「ダウンロード」ボタンを備える。
- デフォルトのファイル名として、現在と同じファイル名が入力済みの状態にする。
- キャンセルボタンを押したら、なにもせずポップアップを閉じる。
- ダウンロードボタンを押したら、指定したファイル名でダウンロードが開始されポップアップを閉じる。
- # 改修方針を検討して。
方針が出たら、Buildエージェントに切り替えて改修を実施してもらいます。
ありがとう。上記方針に従って改修を実施して。
差分確認と動作確認
TortoiseGitとWinMargeで変更点を確認します。
「./src/login.html」をWebブラウザで開いて動作させる。

もし問題があるようならopencodeに話しかけて修正を依頼しましょう。
リポジトリにコミットする
問題がなければコミットします。TortoiseGitでも可能ですが、ここでは opencode に実施してもらいます。
問題なしです。コミットしておいて。
TortoiseGitでログを確認します。
コメントも考えてくれるので楽ですね。
ブランチをマージする
作業用の「workYYYYMMDD」ブランチを「main」ブランチにマージします。
まず「main」ブランチに切り替えます。
右クリックメニューから「切り替え/チェックアウト...」を選択する。

次に「workYYYYMMDD」ブランチを「main」ブランチにマージします。
リモートリポジトリにプッシュする
実案件では、最後にリモートへプッシュします。
ローカルの「main」ブランチを、リモートの「main」ブランチにプッシュする。

※本記事で使用したリポジトリは read-only のため、実際にはプッシュできません。
次回は...
次回は Visual Studio Code と opencode を組み合わせた使い方を紹介する予定です。


















