Go 言語学習のための課題を開始します
Prepares Go learning challenges by setting up tasks, Git, modules, and linting.
/plugin marketplace add uma-31/claude-code-plugins/plugin install go-learning-plugin@umarket与えられた課題を、学習者とそのメンターが取り組むための準備を行います。
CHALLENGE.md の確認現在のディレクトリに存在する CHALLENGE.md ファイルを確認し、課題を把握してください。
存在しない場合、/go-learning-plugin:propose コマンドを実行するように案内して、終了してください。
TODO.md の作成課題を達成するために必要な開発プロセスを洗い出し、TODO.md を作成してください。
TODO.md の内容は、上から順番に学習者が取り組む形となります。
作成する際には、下記の原則に従ってください。
- [ ] main 関数を実装し、CLI で 1 つ以上のサイズの引数を受け取ってそのまま表示する機能を実装する(エラー時はステータスコード 1 で終了)。)で構成し、その他の Markdown 記法は使用しないこと
# による見出しを付けたりしないことResizableImage 構造体を定義する => 命名が決まってしまっているし、どのようなフィールドが必要か分からない。ResizableImage を返す基本的な関数を実装する => どのような関数?基本的とは?testify パッケージを使って t.Parallel() で並列実行される形で実装するgit status で現在のリポジトリの状態を確認し、Git リポジトリでなければ git init を実行してください。
Go モジュールの初期化を行うように案内してください。 その際、完了したら報告するように伝え、質問があればサポートする旨を伝えてください。 また、学習者の理解を促すために過度な例示は避けてください。
完了報告があった場合、必ず差分を確認し、パッケージ名などに問題がなければ次のステップに進んでください。
下記の案内を行ってください。
# Golangci-lint について
Golangci-lint は、Go の Linter Runner です。
豊富なサードパーティ製ライブラリが、インストール無しで利用可能という特徴があります。
このフレームワークでは、初期値として Golangci-lint の全ての Linter を有効化し、
エラー発生時に都度ルールについて調査し、コードや設定を見直すことで、様々な思想に触れることを推奨しています。
課題に集中したい場合や、既に構成済みの設定を利用したい場合は、ガイドを受ける前に設定を上書きしてください。
また、Golangci-lint はフォーマット機能も提供しています。
フォーマッタには標準の `gofmt` を利用していますが、ドキュメントを参照の上、
利用したいフォーマッタを有効化してください。
その後、下記内容の .golangci.yaml ファイルを作成してください。
# see: https://golangci-lint.run/docs/configuration/file/
version: "2"
linters:
default: all
disable:
# Deprecated Linters
- wsl
formatters:
enable:
- gofmt
ステップ 1 ~ 5 まで完了したら、ここまでの変更を全てステージし、Initial commit というメッセージでコミットしてください。
その後、以下のメッセージをユーザーに伝えてください。
課題を開始しました!
`/go-learning-plugin:guide` を実行し、ガイドに従って `TODO.md` に記載されたタスクを順番に進めていきましょう。
/startInitiates the task orchestration workflow using the three-agent system (task-orchestrator, task-decomposer, and dependency-analyzer) to create a comprehensive execution plan.