{
"cells": [
{
"cell_type": "markdown",
"id": "48949e9c",
"metadata": {},
"source": [
"# 🚀 Advanced Prompt Management System - Workflow Analysis\n",
"\n",
"## システム概要\n",
"GitHub ISSUE → 承認フロー → システム自動生成 → GitHub リポジトリ作成 → Google Chat通知という完全な自動化ワークフローの詳細分析\n",
"\n",
"**主要コンポーネント:**\n",
"- ✅ **承認キューシステム** (SQLite Database)\n",
"- ✅ **システム生成エンジン** (GPT-ENGINEER代替)\n",
"- ✅ **GitHub API統合** (リポジトリ自動作成)\n",
"- ✅ **Google Chat通知** (完了通知)\n",
"- ✅ **実行ログトラッキング** (詳細監査)\n",
"\n",
"**このNotebookの使用方法:**\n",
"1. 各セルを上から順番に実行\n",
"2. Mermaidフローチャートで視覚的に理解\n",
"3. 実際のコード例で動作確認\n",
"4. ステップバイステップでシステム管理"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!bash\n",
"echo \"tst\""
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "e2058c68",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🔧 システム設定確認:\n",
" データベースパス: /workspaces/fastapi_django_main_live/prompts.db\n",
" GitHub Token: ✅ 設定済み\n",
" Google Chat Webhook: ❌ 未設定\n",
"\n",
"✅ モジュールインポート完了\n"
]
}
],
"source": [
"# システム必要モジュールのインポート\n",
"import sqlite3\n",
"import sys\n",
"import os\n",
"import json\n",
"import requests\n",
"import subprocess\n",
"from datetime import datetime\n",
"from pathlib import Path\n",
"from IPython.display import HTML, display\n",
"\n",
"# プロジェクトルートパス設定\n",
"sys.path.append('/workspaces/fastapi_django_main_live')\n",
"\n",
"# 設定値確認\n",
"print(\"🔧 システム設定確認:\")\n",
"print(f\" データベースパス: /workspaces/fastapi_django_main_live/prompts.db\")\n",
"print(f\" GitHub Token: {'✅ 設定済み' if os.environ.get('GITHUB_TOKEN') else '❌ 未設定'}\")\n",
"print(f\" Google Chat Webhook: {'✅ 設定済み' if os.environ.get('GOOGLE_CHAT_WEBHOOK') else '❌ 未設定'}\")\n",
"print(\"\\n✅ モジュールインポート完了\")"
]
},
{
"cell_type": "markdown",
"id": "00bb33b8",
"metadata": {},
"source": [
"## 🔄 Overall System Flow\n",
"\n",
"```mermaid\n",
"flowchart TD\n",
" A[GitHub ISSUE] --> B[Issue Monitor]\n",
" B --> C[SQLite Approval Queue]\n",
" C --> D[Manual Approval Process]\n",
" D --> E[ApprovedItemExecutor]\n",
" \n",
" E --> F[System Generation]\n",
" F --> G[Generate HTML/Files]\n",
" G --> H[Create GitHub Repository]\n",
" H --> I[Push Code to GitHub]\n",
" I --> J[Send Google Chat Notification]\n",
" J --> K[Update Execution Log]\n",
" \n",
" C -.-> L[Approval Dashboard UI]\n",
" K -.-> M[Monitoring Dashboard]\n",
" \n",
" style A fill:#e1f5fe\n",
" style E fill:#f3e5f5\n",
" style H fill:#e8f5e8\n",
" style J fill:#fff3e0\n",
"```\n",
"\n",
"**フロー説明:**\n",
"1. **GitHub ISSUE** - 新しいシステム開発要求\n",
"2. **Issue Monitor** - 自動監視とキューへの追加\n",
"3. **Manual Approval** - 人的承認プロセス\n",
"4. **System Generation** - GPT-ENGINEER風の自動システム生成\n",
"5. **GitHub Integration** - リポジトリ作成とコードプッシュ\n",
"6. **Notification** - Google Chat完了通知"
]
},
{
"cell_type": "markdown",
"id": "eee3bdea",
"metadata": {},
"source": [
"## 📊 1. Database Operations\n",
"\n",
"### データベース構造とSQLite操作\n",
"\n",
"```mermaid\n",
"erDiagram\n",
" approval_queue {\n",
" int id PK\n",
" string issue_title\n",
" text issue_body\n",
" string approval_status\n",
" string priority\n",
" string requester\n",
" string approved_by\n",
" timestamp approved_at\n",
" timestamp created_at\n",
" }\n",
" \n",
" execution_log {\n",
" int id PK\n",
" int approval_id FK\n",
" timestamp execution_start\n",
" timestamp execution_end\n",
" string status\n",
" text result_summary\n",
" string github_repo_url\n",
" text error_message\n",
" }\n",
" \n",
" approval_queue ||--o{ execution_log : \"has execution logs\"\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ccdefb03",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"📊 データベース状態:\n",
" 承認キュー総数: 5\n",
" 実行ログ総数: 5\n",
" 実行待ちアイテム数: 0\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# データベース接続テスト\n",
"def test_database_connection():\n",
" \"\"\"データベース接続と基本操作のテスト\"\"\"\n",
" db_path = \"/workspaces/fastapi_django_main_live/prompts.db\"\n",
" \n",
" try:\n",
" conn = sqlite3.connect(db_path)\n",
" cursor = conn.cursor()\n",
" \n",
" # 承認キューの件数確認\n",
" cursor.execute(\"SELECT COUNT(*) FROM approval_queue\")\n",
" queue_count = cursor.fetchone()[0]\n",
" \n",
" # 実行ログの件数確認\n",
" cursor.execute(\"SELECT COUNT(*) FROM execution_log\")\n",
" log_count = cursor.fetchone()[0]\n",
" \n",
" # 承認済み未実行アイテムの確認\n",
" cursor.execute(\"\"\"\n",
" SELECT COUNT(*) FROM approval_queue aq\n",
" LEFT JOIN execution_log el ON aq.id = el.approval_id\n",
" WHERE aq.approval_status = 'approved' AND el.id IS NULL\n",
" \"\"\")\n",
" pending_count = cursor.fetchone()[0]\n",
" \n",
" conn.close()\n",
" \n",
" print(\"📊 データベース状態:\")\n",
" print(f\" 承認キュー総数: {queue_count}\")\n",
" print(f\" 実行ログ総数: {log_count}\")\n",
" print(f\" 実行待ちアイテム数: {pending_count}\")\n",
" \n",
" return True\n",
" \n",
" except Exception as e:\n",
" print(f\"❌ データベース接続エラー: {e}\")\n",
" return False\n",
"\n",
"# テスト実行\n",
"test_database_connection()"
]
},
{
"cell_type": "markdown",
"id": "fa4b6fa2",
"metadata": {},
"source": [
"## 🔧 2. System Generation Process\n",
"\n",
"### システム生成フロー\n",
"\n",
"```mermaid\n",
"flowchart LR\n",
" A[承認済みタイトル・説明] --> B[HTMLテンプレート生成]\n",
" B --> C[CSS スタイリング適用]\n",
" C --> D[README.md 作成]\n",
" D --> E[/tmp/generated_system/]\n",
" \n",
" E --> F[index.html]\n",
" E --> G[README.md]\n",
" \n",
" F --> H[\"ブラウザ表示可能
完全なWebページ\"]\n",
" G --> I[\"プロジェクト説明
マークダウン文書\"]\n",
" \n",
" style A fill:#e3f2fd\n",
" style E fill:#f1f8e9\n",
" style H fill:#fff3e0\n",
" style I fill:#fce4ec\n",
"```\n",
"\n",
"**生成されるファイル構成:**\n",
"- `index.html` - レスポンシブWebページ\n",
"- `README.md` - プロジェクト詳細説明\n",
"- 美しいCSS装飾とモダンUI"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b6979791",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🔧 システム生成デモ開始: Demo AI Assistant System\n",
"✅ HTML生成完了\n",
"📄 生成されたHTMLコンテンツの一部:\n",
"==================================================\n",
"\n",
"\n",
"
{description}\n", "