Communitygithub.com

PaeoniaCommon/SkillsOdea

平易な言葉で表された目標を、順序付けられたステップと入れ子のサブプロセスに分解して、新しい toy_process プロセスを計画します。ユーザーが新しいプロセス、ワークフロー、またはパイプラインを依頼した場合は、コードを書く前に最初にこれを使用してください。

SkillsOdea とは?

このスキルは、開発者やAIエージェントが「テキスト内の単語をカウントするプロセスを作って」といった自然言語の要求を、実行可能なステップ計画に変換するためのものです。主に、独自の toy_process フレームワーク(`process_package/` に配置)上で動作し、プロセスをメソッドステップとサブプロセスステップに分類することで、再利用性と明確なデータフローを確保します。各ステップは `context` 辞書を介してデータを受け渡し、プロセスごとにクラス名、パラメータ、ステップの順序、コンテキストキーを定義します。このスキルは計画段階に特化しており、実際のコード生成は `create-process` スキルが担当するため、まずこのスキルで計画を立案し、その後ユーザーに確認してから実装に進むのが推奨されるワークフローです。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/PaeoniaCommon/SkillsOdea/tree/HEAD/.opencode/skills/design-process

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

プロセスの設計

このスキルを使用して、「テキスト内の単語をカウントするプロセスを作って」といった要求をステップ計画に変換します。その後、create-process スキルで実装を進めてください。

パッケージは process_package/ にあります。親クラスは process_package/toy_process/process.py です。

1. ステップを列挙する

目標を、それぞれ動詞句で表される小さなアクションの順序付きリストとして記述します。

WordReport
  1. テキストをクリーニング
  2. 単語をカウント
  3. レポートを構築

各ステップは1つの処理を行い、その結果を共有の context ディクショナリに格納します。

2. 各ステップの種類を決定する

各ステップについて、以下を選択します。

メソッドステップ を使用する場合サブプロセスステップ を使用する場合
1つの小さなアクションである複数のアクションがまとまっている
このプロセスだけで使用される他のプロセスでも再利用できる
独自の設定を必要としない独自のパラメータを持つ

サブプロセスはさらにサブプロセスを含むことができます。ネストは浅く保ち、ほとんどのおもちゃプロセスでは2レベルで十分です。

3. 計画を文書化する

各プロセス(親プロセスとすべてのサブプロセス)について、以下を記録します。

  • クラス名: CamelCase の名詞句または動詞句。例: CleanText。
  • パラメータ: 名前 → デフォルト値。これらは set_parameters に記述します。
  • ステップ: 順序通り。メソッドは snake_case、サブプロセスはクラス名を使用します。
  • コンテキストキー: 各ステップが読み書きするもの。

計画の例:

CleanText            パラメータ: lowercase=True
  - strip_punctuation  読み: text    書き: text
  - normalise_case     読み: text    書き: text

WordReport           パラメータ: text="", lowercase=True, top_n=3
  - load_text          読み: -       書き: text
  - CleanText(lowercase=...)   (サブプロセス)
  - count_words        読み: text    書き: counts
  - build_report       読み: counts  書き: report

4. 計画を確認する

  • ステップが読み取るすべてのコンテキストキーが、以前のステップによって書き込まれていること。
  • ステップが使用するすべてのパラメータが、そのプロセスのパラメータに含まれていること。
  • サブプロセスには、親からキーワード引数としてパラメータが渡されること(例: CleanText(lowercase=self.params["lowercase"]))。

要求が曖昧だった場合は、計画をユーザーに表示し、その後 create-process スキルに従ってください。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル