agents/scripts/sync-orders.ts — orders 2件 + agent_logs 26件を同期済み。15分毎 scheduled-task 登録待ち。
*/15 * * * * で登録(LLM課金なし・純粋 Node.js)cd site && npm run deploy → Stripe Webhook URL を本番エンドポイントに更新| Order ID | 顧客 | サービス | 金額 | ステータス | 作成日 | ソース |
|---|---|---|---|---|---|---|
| 2e967da9… | テスト太郎 | banner | ¥9,800 | lead | 2026-05-13 | direct |
| 22b02975… | 受注テスト株式会社 | banner | ¥9,800 | won | 2026-05-13 | direct |
| ファイル | 内容 | 状態 | 依存Agent |
|---|---|---|---|
| migration_001 | 初期スキーマ(orders / agent_logs / agent_alerts) | ✅ 適用済み | 全Agent |
| migration_002 | orders 拡張(amount_jpy / metadata / status制約) | ✅ 適用済み | Sales / Finance |
| migration_003 | Readycul サービス追加(service_type 制約拡張) | ✅ 適用済み | Sales |
| migration_004 | Agent コード整合(列リネーム / CS管理列 / billing_attempts) | ✅ 適用済み | CS / Finance |
| migration_005 | ナレッジRAGテーブル(rag_chunks VECTOR型 + cosine_distance検索関数) | ⬜ 未適用 | Production-Deep(ブロック中) |
| カラム | 型 | 説明 |
|---|---|---|
| id | RAW(16) | UUID |
| status | VARCHAR2 | lead→won→production→review→delivered→paid |
| service_type | VARCHAR2 | banner / lp / knowledge_rag / competitive_monitoring etc. |
| amount_jpy | NUMBER | 受注金額(円) |
| metadata | CLOB(JSON) | サービス別パラメータ |
| cs_status | VARCHAR2 | pending / checked_in / escalated |
| checkin_due_at | TIMESTAMP | CS チェックイン期限 |
| カラム | 型 | 説明 |
|---|---|---|
| id | RAW(16) | UUID |
| agent_name | VARCHAR2 | ceo / sales / watchdog etc. |
| event_type | VARCHAR2 | kpi_snapshot / lead_notified / error etc. |
| payload | CLOB(JSON) | イベント別データ |
| created_at | TIMESTAMP | Supabase→Oracle 差分同期の基準 |
| カラム | 説明 |
|---|---|
| alert_type | stalled / payment_failed / ceo_down / cs_checkin / escalation |
| delivered | Watchdog 配信済みフラグ |
| payload | CLOB(JSON) アラート詳細 |
| カラム | 説明 |
|---|---|
| order_id | RAW(16) — 元案件との紐付け |
| chunk_text | CLOB — 500文字チャンク本文 |
| embedding | VECTOR(1024, FLOAT32) — voyage-3 埋め込み |
| chunk_index | NUMBER — チャンク順序 |
| source_url | VARCHAR2 — 元URL |
oracledb ネイティブバインディング(C extension)を実行不可。
そのため site/ から直接 Oracle ATP に書けない。ORDS(Oracle REST Data Services)経由案は OCI Console なしで設定困難なため却下。
→ Supabase に書いて、Node.js スクリプトが15分毎に差分同期する パターンを採用(ADR 2026-05-14)。
.sync-state.json から last_synced_at を読むupdated_at > last_synced_at を取得created_at > last_synced_at で差分取得| 日付 | 判断タイトル | 決定内容 | 却下した選択肢 |
|---|---|---|---|
| 2026-05-09 | Supabase → Oracle ATP 移行 | Always Free 20GB・VECTOR型ネイティブ・Agent RTT最適化を重視してOracle ATPをWorld Modelに採用 | Supabase pg + pgvector 継続 |
| 2026-05-14 | sync bridge パターン採用 | Cloudflare Workers + oracledb 非互換 → sync-orders.ts で Supabase→Oracle をブリッジ | ORDS 経由(OCI Console なしで設定困難なため却下) |
| 2026-05-14 | 承認ゲート 3段階設計 | 自律実行可 / Founder承認必須 / Agent禁止 の3段階。金銭・顧客接触はすべて承認必須に | 全自動(リスク大)/ 全手動(自動化メリットなし) |