1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「opencode」をお仕事で使おう(2/4)

1
Last updated at Posted at 2026-05-09

記事一覧

「opencode」をお仕事で使おう(1/4)
「opencode」をお仕事で使おう(3/4)
「opencode」をお仕事で使おう(4/4)

今回のお題

前回は Windows 環境に opencode を導入し、簡単なゲームアプリを実装しました。今回は、opencode の流儀に従って設定ファイルを用意した上で、もう少し実践的な題材として「Web ベースの ユーザー認証機能付きテキストエディタ」を開発してみます。

ポイントは、

いきなり実装させない
仕様書・ルール・段取りを先に与える

という流れを、実際の開発に近い形で体験することです。

仕様書を準備する

適当な作業用フォルダを作成し、その中に ./spec/ サブフォルダを作成します。サブフォルダ内に、以下の 2 つのテキストファイルを作成してください。

./spec/機能仕様.md
# 概要

ユーザー認証機能を持つ単純なテキストエディタ。

# ログイン画面

## 機能

認証情報(ユーザー名とパスワード)を検証し、メイン画面に遷移できる。

## 画面要素

### 「ユーザー名」入力欄

自由入力のテキストボックス。

### 「パスワード」入力欄

自由入力のテキストボックス。
初期状態では伏字とする。
目玉マークのボタンを併設し、ボタンが押されたら伏字を解除する。

### 「ログイン」ボタン

押下されたら入力された認証情報を検証する。
正しい認証情報だった場合は、「エディタ画面」に遷移する。
間違った認証情報だった場合は、その旨をアラート表示する。

## 認証情報

ユーザー名「test」パスワード「pass」とする。

# エディタ画面

## 機能

簡単なテキストエディタ。
入力した内容をlocal storageに保存できる。
入力した内容をテキストファイルとしてダウンロードできる。
入力した内容をクリアできる。
ログアウトして「ログイン画面」に遷移できる。

## 画面要素

### 「テキスト」入力欄

複数行のテキストを自由入力できる。

### 「保存」ボタン

「テキスト」入力欄の内容をlocal storageに保存する。

### 「ダウンロード」ボタン

「テキスト」入力欄の内容をテキストファイルとしてダウンロードする。

### 「クリア」ボタン

「テキスト」入力欄の内容を消去する。
最後に保存した後、テキストの内容が変更されている場合は、変更が破棄される旨をYes/Noダイアログで確認する。

### 「ログアウト」ボタン

「ログイン画面」に遷移する。
最後に保存した後、テキストの内容が変更されている場合は、変更が破棄される旨をYes/Noダイアログで確認する。
./spec/実装方針.md
# 使用する言語

HTML、CSS、javascriptとする。

# モジュール構成

共通javascript: common.js
共通CSS: common.css
ログイン画面: login.html/login.js/login.css
エディタ画面: editor.html/editor.js/editor.css

# データの保存先

WebブラウザのlocalStorageを使用する。

ルールを定義するファイルを作成する

事前に共通ルールを定義しておくことで、毎回同じ前提条件や注意点を入力する必要がなくなります。ルールファイルの詳細については以下を参照してください。

作業用フォルダ直下に、AGENTS.md という名前のテキストファイルを作成します。(※ 既存コードがある場合は /init コマンドで自動生成できますが、今回はゼロから作成するため手動で用意します。)

./AGENTS.md
# AGENTS.md

## 役割・前提

- あなたは **優秀な IT エンジニア**として振る舞うこと。
- **HTML****javascript** および **CSS** に精通していることを前提とする。

## データベース設計について

- 本プロジェクトの設計は、以下のファイルに定義されている。
spec\機能仕様.md
spec\実装方針.md
- 実装・仕様検討の際は、必ずこれらを参照すること。

## コミュニケーション方針

- すべてのやり取りは **日本語** で行うこと。
- **Git のコミットメッセージ** も必ず日本語で記述すること。

実際に実装してみる

opencodeを起動する

作業フォルダを右クリックし、「Git Bash here」を選択して Git Bash を起動します。以下のコマンドで opencode を TUI モードで起動してください。

opencode

作業の段取りを検討してもらう

まずは、./spec/ に置いた仕様書を元に、実装作業の段取りを考えてもらいます。@ に続けてフォルダやファイルの相対パスを指定すると、その内容を明示的に読み込ませることができます。

以下を入力してください。

@spec/ に機能仕様と実装方針を置いてある。実装作業の段取りを検討して ./plan/ 以下に保存して。

「./plan/」フォルダに「実装段取り.md」が生成されました。
image.png

段取りを AI にレビューさせる

生成された段取りは人間がレビューしても構いませんが、ここではレビュー作業自体も AI に任せてみます。

opencode では、作業目的に応じて「エージェント」を切り替えることができます。詳細は以下を参照してください。

  • Build エージェント
    ファイルやディレクトリを作成・変更・削除する
  • Plan エージェント
    ファイルを読み込むのみで変更は行わない(安全)

初期状態では Build が選択されているため、Tab キーで Plan に切り替えます。併せて /models コマンドで AI モデルも切り替えます。(レビューは、実装した本人ではなく「別の人」に頼む方が望ましい。この考え方は AI でも同じです。)

ここでは GPT-4.1 を選択しました。

image.png

エージェントとAIモデルを切り替えたら、レビューを指示します

@plan\実装段取り.md の内容を精査して、問題点があれば指摘して。

指摘内容を反映する

再び Tab キーでエージェントを Build に戻します(モデルも GPT-5.1 Codex に戻っているはずですが、念のため /models で確認してください)。次に、レビュアーからの指摘を段取りに反映させます。

上記の指摘と注意点のうち、必要と思われる個所を @plan\実装段取り.md に反映して。

image.png

実装を依頼する

最後に、整えた段取りに従って実装を依頼します。

ありがとう。 @plan\実装段取り.md に従って実装してほしい。コードは ./src/ に保存して。

image.png

「./src/」内にファイル一式が生成されました。
image.png

「./src/login.html」をWebブラウザで開いて動作検証しましょう。
image.png
image.png

AI モデルにもよりますが、概ね問題なく動作するはずです。もし不具合があれば、そのまま修正を依頼します。例えば次のように指示します。

ログイン画面のパスワード入力欄の伏字の切替えボタンが動作しません。修正して。

次回は...

既存のコードを Git リポジトリから取得し、仕様変更 → Commit → Push までを一通り実践する予定です。

次記事: 「opencode」をお仕事で使おう(3/4)

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?