flowchart TD
A[ユーザー入力] --> X[正規名称(canonical_name)]
X --> B[ユーザ要求記述書]
A --> B
B --> C[要件定義書]
B --> Y[ファイル構造定義書]
C --> D[Pythonコード(ファイル生成用)]
Y --> D
D --> F[最終出力(md,py,java,他)]
F --> G[詳細設計書(最終出力のファイル単位)]
G --> H[情報構造体N(ファイル間の依存など)]
H --> F
どんな処理をするのか、どこにあるのか、どのように関わり合っているのか
-
ユーザーはプロンプトや Markdown ファイルを入力します。この入力に基づいて処理が開始されます。
-
入力された Markdown ファイルやプロンプトを元に、要件定義書を生成し、必要に応じてターゲットファイルを作成します。
- 生成された要件定義書を基に、ターゲットファイルに Python コードを生成します。
Zoltraak のコアは以下の2つのコンポーネントで構成されている。
- コンバータ(source⇒target の変換ロジック)
- ジェネレータ(要件定義書から複数のソースファイルを生成)
Zoltraak のコアは source⇒target の変換ロジックにある。 以下のロジックで効率的に変換する。
- canonical_name とレイヤで一意に決まる source ファイルがある(source_org と仮称)
- 変換に影響するインプット(これらが一致すればスキップできる)
- canonical_name(=>source_org が一意に決まる)
- プロンプト(ユーザ要求 or ユーザ要求記述書)
- コンテキスト(その他の変換に影響する要素をプロンプトに含める設計)
- グリモア(compiler, formatter, architect)
- source_org を確定する(基本的には前レイヤの target ファイル)
- プロンプト+ source_org +各種コンテキストなどを詰め込んで最終プロンプトを生成する
- 初回は最終プロンプトから target ファイルを生成する
- 2 回目以降は最終プロンプトの差分を target ファイルに適用する
- (差分適用ロジック)
- 最終プロンプトに差分がなければスキップする
- source_org に差分があれば、最終プロンプト + source_org の差分 のプロンプトを利用する
- source_org の差分が大きすぎる場合や、適用結果に異常があれば、初回と同じように最終プロンプトだけを利用する
- source_org に差分がない(プロンプト等が変化した)場合は、初回と同じように最終プロンプトだけを利用する
最重要なのはプロンプト構築ロジック。
flowchart TD
A[ユーザー入力(prompt_input)] --> X[コンパイラ(compiler)]
B[ユーザ要求記述書(requirements_content)] --> X
C[変換元コンテンツ(source_content)] --> X
X --> X2[ゴールプロンプト(prompt_goal)]
X2 --> Y[最終プロンプト(prompt_final)]
X3[エターナルインテント(destiny_content)] --> Y
D[フォーマッタ(formatter_prompt)] --> Y
E[言語(language)日本語/英語] --> Y
Y --> Z[変換後コンテンツ(target_content)]
- ジェネレータの本体は architect.md
- 要件定義書からファイルを生成する
- ファイル構造定義書を元にファイルを削除する
- 要件定義書と architect.md から python スクリプトを作成する
- python スクリプトを実行する(新規作成 or 更新)
- ファイル構造定義書と architect.md から python スクリプトを作成する
- python スクリプトを実行する(削除)
「本を書きたい」などの一般的なプロンプトです。
アウトプットファイルやフォルダを一意に識別するための正規名称です。
ユーザ要求から統一された規格に整形した Markdown ファイルです。 この時点ではプロジェクト特性は考慮されません。
目的
- ユーザ要求の情報量が多すぎたり少なすぎたりしても安定して動作させる
- 無駄なユーザ要求や重複を解消する
曖昧さが排除された抽象的な状態の Markdown ファイルです。
目的
- プロジェクトの特性に合った内容を構成する
特徴
- 成果物(python や java)との直接的な関係性(リンク)を管理しない
- 成果物の形式(python や java)の情報を段階的に含む
ジェネレータが生成するべき全ファイルの完全なリストです。 このファイルに存在しないものは削除されます。
python ファイルと対応するマークダウン形式の設計書です。
目的
- python ファイルなどの最終的な成果物の品質や状態を管理する
- 効率的に成果物の差分更新や品質向上ができる
他の用語はこちら
本を書きたい
work
├── generated
│ ├── requirements
│ │ └── zoltraak_pre_process.py
│ └── zoltraak_pre_process
│ ├── README.md
│ └── pre_process.py
├── past_md_files
│ └── zoltraak_pre_process.md
├── past_prompt_files
└── requirements
└── zoltraak_pre_process.md
作成中
requirements/zoltraak_pre_process.md
generated/requirements/zoltraak_pre_process.py
複数のターゲットファイルを順次作成するための python ファイル
generated/zoltraak_pre_process/README.md generated/zoltraak_pre_process/pre_process.py
要件定義書により最終的に出力されたファイル群
past_md_files: 要件定義書のバックアップ past_prompt_files: ターゲットファイルのバックアップ