Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
想像が、視覚芸術になる場所。 KAWAKAMI Lab. — creative laboratory.
Translation pending
OtherTypeScript · CSSGitHub @MoganKawakamiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗同人サークルの紹介・作品展示と、日替わりの育成ウマ娘占い。Next.js 15 / React 19 / TypeScript。
npm ci
npm run dev
開発サーバーは http://localhost:3000 。Node.js 22 LTSを推奨。
npm run check # CSV/JSON整合性、型、Lint、占いロジックの回帰テスト
npm run build
npm start
app/page.tsx、components/Site.tsx:トップ。760px以下はcomponents/lab/、761px以上はcomponents/pc/。components/shared/:PC・スマホ共通の部品(art.tsxの画像枠・ロゴ、Crystal.tsxの水晶球、PageViewer.tsxの試し読み)。lib/data.ts:作品、プロフィール、イベント、SNS。PC・スマホ共通。lib/use-site-effects.ts:ローディング・表示アニメーション・スクロール進捗・作品ビューア・背面スクロール固定。use-dialog-focus.ts:ダイアログ内のフォーカス管理。swipe.ts:スワイプ判定。app/styles/base.css:全ページ共通の色・フォント・要素リセット(ルートレイアウトで読み込み)。app/styles/desktop.css:PC、mobile-base.css:スマホ、mobile.css:mobile-base.cssを760px以下に限定して読み込む。app/globals.css:画面切り替え、画像枠、試し読み。crystal.css:共通の水晶球。app/fortune/:占い・共有結果・OG画像。トップとはグローバルCSSが異なるため、ページ間は通常のリンクで移動。lib/fortune-data.ts:抽選、共有コードの復元。fortune-store.ts:ブラウザ保存。public/images/:配信用画像。Images/:Git対象外の元画像。画像加工の自動スクリプトは未整備。同じCSSファイルを、あるページでは@import … screen and (max-width: 760px)、別のページでは条件なしで読み込まないこと。ビルド時に1つにまとめられ、どちらかの条件が失われる(PC表示にスマホ用CSSが効く等)。
character.csvのname / name_en、scenario.csvとitem.csvのname、運勢名CSVのcommentを読み込む。No.とcategoryは抽選に使わない。
npm run data:generate
npm run data:check
dev/build開始前にも生成する。開発中にCSVを編集したら再生成する(CSVの自動監視はない)。ルートのその他のCSVも運勢コメントとして処理するため、無関係なCSVは置かない。
共有コードはYYYYMMDD-rank-item-uma-scenario-message。数字は配列の添字。既存の行の削除・変更・並べ替え・途中挿入を避け、末尾へ追加する。 生成時に既存JSONとの前方一致を検査し、互換性を壊す更新を拒否する。生成JSONを手で書き換えて検査を回避しない。英語名の修正は可能。
古いコメント番号なしのコードと、現在は抽選しない「吉」も維持する。F_RANKSの既存順序も変更しない。訂正で既存候補の意味を変える必要がある場合は、先にデータのバージョン管理と旧コード復元の移行設計を行う。
作品の追加時は注目作品の参照とヒーローの年・仕様表示、統計も確認する。イベントは古い順、頒布実績は売り子参加を含まない固定値。
端末のローカル日付で1日1回、育成ウマ娘のみ5回まで再抽選する。同日中は同じ候補を繰り返さない。localStorageキーlab-fortune:v1と保存形式を維持する。
日付変更、復帰、別タブの保存変更を反映し、日付をまたいだ未完了抽選は取り消す。ブラウザ保存不可の場合はメモリ内で継続する。複数タブの変更は同期するが、localStorageにはトランザクションがないため、別タブの厳密に同時の書き込みをサーバーのようには排他制御しない。回数制限はアカウント単位の保証ではない。
Vercel以外では環境変数SITE_URL=https://公開ドメインを設定する。VercelではVERCEL_PROJECT_PRODUCTION_URLを使用でき、SITE_URLが優先される。どちらも未指定なら開発用http://localhost:3000を使う。
画面のWebフォントと共有OG画像のフォント取得はGoogle Fontsに依存する。OG画像は有効なコードについて長期キャッシュするため、既存候補を変更しない。ネットワーク障害時のOG生成失敗は監視対象。