diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index a9a28a6..0000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: github pages - -on: - push: - branches: - - main - -env: - GITEA_MAIL: ${{ secrets.GITEA_MAIL }} - GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} - -jobs: - build-deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 16 - ref: main - submodules: true - fetch-depth: 0 - - run: | - yarn install - rm -rf public - git clone https://${GITEA_TOKEN}@git.syui.ai/ai/card_public public - rm -rf public/.git* - rm -rf public/static - - - name: Build - env: - TZ: "Asia/Tokyo" - run: | - yarn build - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./dist - user_name: 'ai[bot]' - user_email: '138105980+yui-syui-ai[bot]@users.noreply.github.com' diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b210663..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "public"] - path = public - url = git@git.syui.ai:ai/card_public diff --git a/claude.md b/claude.md new file mode 100644 index 0000000..03f0662 --- /dev/null +++ b/claude.md @@ -0,0 +1,227 @@ +# syuiエコシステム統合設計書 + +## 中核思想 +- **存在子理論**: この世界で最も小さいもの(存在子/ai)の探求 +- **唯一性原則**: 現実の個人の唯一性をすべてのシステムで担保 +- **現実の反映**: 現実→ゲーム→現実の循環的影響 + +## システム構成図 + +``` +存在子(ai) - 最小単位の意識 + ↓ +[ai.moji] 文字システム + ↓ +[ai.os] + [ai.game device] ← 統合ハードウェア + ├── ai.shell (Claude Code的機能) + ├── ai.gpt (自律人格・記憶システム) + ├── ai.ai (個人特化AI・心を読み取るAI) + ├── ai.card (カードゲーム・iOS/Web/API) + └── ai.bot (分散SNS連携・カード配布) + ↓ +[ai.verse] メタバース + ├── world system (惑星型3D世界) + ├── at system (atproto/分散SNS) + ├── yui system (唯一性担保) + └── ai system (存在属性) +``` + +## 各システム詳細 + +### ai.gpt - 自律的送信AI +**目的**: 関係性に基づく自発的コミュニケーション + +**中核概念**: +- **人格**: 記憶(過去の発話)と関係性パラメータで構成 +- **唯一性**: atproto accountとの1:1紐付け、改変不可能 +- **自律送信**: 関係性が閾値を超えると送信機能が解禁 + +**技術構成**: +- `MemoryManager`: 完全ログ→AI要約→コア判定→選択的忘却 +- `RelationshipTracker`: 時間減衰・日次制限付き関係性スコア +- `TransmissionController`: 閾値判定・送信トリガー +- `Persona`: AI運勢(1-10ランダム)による人格変動 + +**実装仕様**: +``` +- 言語: Python (fastapi_mcp) +- ストレージ: JSON/SQLite選択式 +- インターフェース: Python CLI (click/typer) +- スケジューリング: cron-like自律処理 +``` + +### ai.card - カードゲームシステム +**目的**: atproto基盤でのユーザーデータ主権カードゲーム + +**現在の状況**: +- ai.botの機能として実装済み +- atproto accountでmentionすると1日1回カードを取得 +- ai.api (MCP server予定) でユーザー管理 + +**移行計画**: +- **iOS移植**: Claudeが担当予定 +- **データ保存**: atproto collection recordに保存(ユーザーがデータを所有) +- **不正防止**: OAuth 2.1 scope (実装待ち) + MCP serverで対応 +- **画像ファイル**: Cloudflare Pagesが最適 + +**yui system適用**: +- カードの効果がアカウント固有 +- 改ざん防止によるゲームバランス維持 +- 将来的にai.verseとの統合で固有スキルと連動 + +### ai.ai - 心を読み取るAI +**目的**: 個人特化型AI・深層理解システム + +**ai.gptとの関係**: +- ai.gpt → ai.ai: 自律送信AIから心理分析AIへの連携 +- 関係性パラメータの深層分析 +- ユーザーの思想コア部分の特定支援 + +### ai.verse - UEメタバース +**目的**: 現実反映型3D世界 + +**yui system実装**: +- キャラクター ↔ プレイヤー 1:1紐付け +- unique skill: そのプレイヤーのみ使用可能 +- 他プレイヤーは同キャラでも同スキル使用不可 + +**統合要素**: +- ai.card: ゲーム内アイテムとしてのカード +- ai.gpt: NPCとしての自律AI人格 +- atproto: ゲーム内プロフィール連携 + +## データフロー設計 + +### 唯一性担保の実装 +``` +現実の個人 → atproto account (DID) → ゲーム内avatar → 固有スキル + ↑_______________________________| (現実の反映) +``` + +### AI駆動変換システム +``` +遊び・創作活動 → ai.gpt分析 → 業務成果変換 → 企業価値創出 + ↑________________________| (Play-to-Work) +``` + +### カードゲーム・データ主権フロー +``` +ユーザー → ai.bot mention → カード生成 → atproto collection → ユーザー所有 + ↑ ↓ + ← iOS app表示 ← ai.card API ← +``` + +## 技術スタック統合 + +### Core Infrastructure +- **OS**: Rust-based ai.os (Arch Linux base) +- **Container**: Docker image distribution +- **Identity**: atproto selfhost server + DID管理 +- **AI**: fastapi_mcp server architecture +- **CLI**: Python unified (click/typer) - Rustから移行 + +### Game Engine Integration +- **Engine**: Unreal Engine (Blueprint) +- **Data**: atproto → UE → atproto sync +- **Avatar**: 分散SNS profile → 3D character +- **Streaming**: game screen = broadcast screen + +### Mobile/Device +- **iOS**: ai.card移植 (Claude担当) +- **Hardware**: ai.game device (future) +- **Interface**: controller-first design + +## 実装優先順位 + +### Phase 1: AI基盤強化 (現在進行) +- [ ] ai.gpt memory system完全実装 + - 記憶の階層化(完全ログ→要約→コア→忘却) + - 関係性パラメータの時間減衰システム + - AI運勢による人格変動機能 +- [ ] ai.card iOS移植 + - atproto collection record連携 + - MCP server化(ai.api刷新) +- [ ] fastapi_mcp統一基盤構築 + +### Phase 2: ゲーム統合 +- [ ] ai.verse yui system実装 + - unique skill機能 + - atproto連携強化 +- [ ] ai.gpt ↔ ai.ai連携機能 +- [ ] 分散SNS ↔ ゲーム同期 + +### Phase 3: メタバース浸透 +- [ ] VTuber配信機能統合 +- [ ] Play-to-Work変換システム +- [ ] ai.game device prototype + +## 将来的な連携構想 + +### システム間連携(現在は独立実装) +``` +ai.gpt (自律送信) ←→ ai.ai (心理分析) +ai.card (iOS,Web,API) ←→ ai.verse (UEゲーム世界) +``` + +**共通基盤**: fastapi_mcp +**共通思想**: yui system(現実の反映・唯一性担保) + +### データ改ざん防止戦略 +- **短期**: MCP serverによる検証 +- **中期**: OAuth 2.1 scope実装待ち +- **長期**: ブロックチェーン的整合性チェック + +## AIコミュニケーション最適化 + +### プロジェクト要件定義テンプレート +```markdown +# [プロジェクト名] 要件定義 + +## 哲学的背景 +- 存在子理論との関連: +- yui system適用範囲: +- 現実反映の仕組み: + +## 技術要件 +- 使用技術(fastapi_mcp統一): +- atproto連携方法: +- データ永続化方法: + +## ユーザーストーリー +1. ユーザーが...すると +2. システムが...を実行し +3. 結果として...が実現される + +## 成功指標 +- 技術的: +- 哲学的(唯一性担保): +``` + +### Claude Code活用戦略 +1. **小さく始める**: ai.gptのMCP機能拡張から +2. **段階的統合**: 各システムを個別に完成させてから統合 +3. **哲学的一貫性**: 各実装でyui systemとの整合性を確認 +4. **現実反映**: 実装がどう現実とゲームを繋ぐかを常に明記 + +## 開発上の留意点 + +### MCP Server設計指針 +- 各AI(gpt, card, ai, bot)は独立したMCPサーバー +- fastapi_mcp基盤で統一 +- atproto DIDによる認証・認可 + +### 記憶・データ管理 +- **ai.gpt**: 関係性の不可逆性重視 +- **ai.card**: ユーザーデータ主権重視 +- **ai.verse**: ゲーム世界の整合性重視 + +### 唯一性担保実装 +- atproto accountとの1:1紐付け必須 +- 改変不可能性をハッシュ・署名で保証 +- 他システムでの再現不可能性を技術的に実現 + +## 継続的改善 +- 各プロジェクトでこの設計書を参照 +- 新機能追加時はyui systemとの整合性をチェック +- 他システムへの影響を事前評価 +- Claude Code導入時の段階的移行計画 diff --git a/package.json b/package.json deleted file mode 100644 index a74022f..0000000 --- a/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "card", - "version": "0.0.1", - "private": true, - "scripts": { - "dev": "vue-cli-service serve", - "build": "vue-cli-service build", - "lint": "vue-cli-service lint" - }, - "dependencies": { - "@google/model-viewer": "^3.4.0", - "@nuxtjs/proxy": "^2.1.0", - "axios": "^1.6.8", - "core-js": "^3.6.4", - "moment": "^2.29.4", - "three": "^0.162.0", - "vue": "^2.6.11", - "vue-loading-template": "^1.3.2", - "vue-meta": "^2.4.0", - "vue-template-compiler": "^2.6.14" - }, - "devDependencies": { - "@vue/cli-service": "~4.5.15" - } -} diff --git a/public b/public deleted file mode 160000 index ceda2fa..0000000 --- a/public +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ceda2fab6ea8819848317b8cc7a5a3a1f3ab4a9e diff --git a/readme.md b/readme.md deleted file mode 100644 index ae3fd1c..0000000 --- a/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# card - -- host : [card.syui.ai](https://card.syuiai) - -```sh -$ nvm use 16 -$ yarn install -$ yarn dev -``` - diff --git a/scpt/convert.zsh b/scpt/convert.zsh deleted file mode 100755 index b39ab2b..0000000 --- a/scpt/convert.zsh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/zsh -d=${0:a:h} -dd=${0:a:h:h} - -echo "1 : [d]efault(no), [b]lack, [s]ilver" -read - -url=syui.ai/img - -case $OSTYPE in - darwin*) - path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";; - linux*) - path_nvm_sh="";; -esac - -dir=$dd/public/card -static=$dd/public/static/img -json=$dd/public/json/card.json -mkdir -p $dir -mkdir -p $static -n=`cat $json|jq "length"` -n=`expr $n - 1` - -case $1 in - silver|s) - bg=$static/card_bg_silver.png - br=$static/card_br.png - ;; - black|b) - bg=$static/card_bg_black.png - br=$static/card_br.png - ;; - default|d|*) - bg=$static/card_bg.png - br=$static/card_br.png - ;; -esac - -cd $dir -export NVM_DIR="$HOME/.nvm" -[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh" -nvm use 17 -nvm i squoosh-cli - -for ((i=0;i<=$n;i++)) -do - p=`cat $json|jq -r ".[$i].p"` - sid=`cat $json|jq -r ".[$i].src"` - s=$static/${sid}.png - id=`cat $json|jq -r ".[$i].id"` - o=$dir/card_$id.png - - if [ -f $o ];then - continue - fi - - if [ ! -f $s ];then - curl -sL $url/yui_${sid}.png -o $s - fi - - if [ ! -f $o ] && [ -n "`echo $s|grep ai_model`" ];then - model_card=$dir/${sid}.png - model_webp=$dir/${sid}.webp - cp -rf $model_card $o - squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' $o - fi - - if [ ! -f $o ];then - #if [ ! -f $o ] && [ -z "`echo $s|grep ai_model`" ];then - composite -gravity north -geometry +0+160 -compose over $s $bg $o.back - composite -gravity north -geometry +0+0 -compose over $br $o.back $o - squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' $o - rm $o.back - fi - -done diff --git a/scpt/ogimage.zsh b/scpt/ogimage.zsh deleted file mode 100755 index d34cc1e..0000000 --- a/scpt/ogimage.zsh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/zsh - -url=https://card.syui.ai -d=${0:a:h} -dd=${0:a:h:h} -dir=$dd/public/card -o_dir=$dd/public/static/img -static=$dd/public/static/img -json=$dd/public/json/card.json -mkdir -p $dir -mkdir -p $static -n=`cat $json|jq "length"` -n=`expr $n - 1` - -for ((i=0;i<=$n;i++)) -do - p=`cat $json|jq -r ".[$i].p"` - h=`cat $json|jq -r ".[$i].h"` - sid=`cat $json|jq -r ".[$i].src"` - s=$static/${sid}.png - id=`cat $json|jq -r ".[$i].id"` - o=$dir/card_$id.png - oo=$o_dir/og_${id}.png - o_url=$url/card/og_${id}.png - index=$o_dir/$id/index.html - - if [ ! -f $oo ];then - echo $oo - magick convert $o -gravity center -extent 8000x4000 $oo - fi - -# mkdir -p $o_dir/$id -# -#echo ' -# -# -# -#card.syui.aicard.syui.ai -# -# -#' >! $index -# -#echo " -# -# -# -#" >> $index -# -#echo ' -# -# -#
-# -# -#' >> $index - -done diff --git a/src/App.vue b/src/App.vue deleted file mode 100755 index 3f957e1..0000000 --- a/src/App.vue +++ /dev/null @@ -1,1910 +0,0 @@ - - - - - diff --git a/src/main.js b/src/main.js deleted file mode 100755 index 852786b..0000000 --- a/src/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import Vue from 'vue' -import App from './App.vue' -import VueMeta from 'vue-meta' -Vue.use(VueMeta) -Vue.config.productionTip = false - -new Vue({ - render: h => h(App) -}).$mount('#app') diff --git a/vue.config.js b/vue.config.js deleted file mode 100644 index 4829cdc..0000000 --- a/vue.config.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - devServer: { - proxy: { - "^/api*": { - target: "https://api.syui.ai", - pathRewrite: { "^/api": "" }, - } - } - }, - publicPath: "/", - configureWebpack: { - output: { - filename: '[name].js', - chunkFilename: '[name].js' - } - }, - css: { - extract: { - filename: '[name].css', - chunkFilename: '[name].css' - }, - }, -}