mcpField
T
techstack

techstack

github.com/keejkrej開発167 回インストール19 週間前に更新
リポジトリ

techstack について

ソフトウェアプロジェクト向けの技術スタックガイドです。フロントエンド、バックエンド、デスクトップ、エージェントアプリ、静的サイト、科学計算の選択肢と実践指針を示します。

主な機能

  1. 01領域別の技術選定案
  2. 02フロントエンド、バックエンド、デスクトップの指針
  3. 03エージェントアプリと静的サイトの構成案
  4. 04言語間契約と型付き境界の説明
  5. 05領域別ガイドとスキャフォールドへの案内

活用シーン

  1. 01新規プロジェクトの技術スタック選定
  2. 02エージェントアプリのアーキテクチャ設計
  3. 03言語間 API 契約の定義

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/keejkrej/based-skills --skill techstack

インストール後、Claude Code で/techstackを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

domains/
agent.md
backend.md
contracts.md
desktop.md
frontend.md
scientific.md
security.md
static.md

詳細

Techstack

全体ルール

  • Effect は TS のドメイン/IO の基盤です。構造化エラー、DI、リソースの安全性、リトライを担い、場当たり的な Promise は使いません
  • サービスごとに主要なサーバースタックを 1 つ選びます
  • 既存リポジトリの規約が新規プロジェクト向けのデフォルトと矛盾する場合は、リポジトリの規約を優先します
  • 境界ごとに型を付けます。信頼できない入力は実行時にデコード/検証します
  • 新規プロジェクトのインストールでは、レジストリでのリリースから最低 7 日間経過したパッケージを使用します。domains/security.md を参照してください
  • TS の相対インポート(すべてのアプリ、パッケージ、ルート、コンポーネント)では、常に拡張子を省略します。from './module' とし、from './module.js' や from './module.ts' は使いません
  • Effect を使うリポジトリでの Effect 実装の詳細については、effect-ts スキルを参照してください

デフォルトの概要

ライブラリと方向性を決めるための内容です。実装の詳細に進む前に、リンク先のファイルを読んでください。

フロントエンド
  • Web SPA:React + Bun + Tailwind v4 + coss-ui + Effect Atom + TanStack Router
  • クライアント IO は Effect プログラムで扱い、状態は atom に置きます。コンポーネント内で生の fetch は使いません
  • モバイル:React Native + Expo + NativeWind + React Native Reusables(ファイルベースルーティングが適している場合は Expo Router も使用)
  • モノレポ(SPA フロントエンド + Rust/Python バックエンド):Bun workspaces + Vite+ tasks(vp run);contracts + client + utils + ui-headless + ui + web-app
  • モノレポ(Next.js/フルスタック Vercel):Bun workspaces + Turborepo(turbo run)
  • ビルドツールチェーン、Lint/フォーマット、コンポーネントのインストールについては、tooling スキルを参照してください
  • → domains/frontend.md
バックエンド
  • TS API:Bun 上の @effect/platform(HttpApi または HttpRouter)。別のルーターフレームワークは使いません
  • Python API/スクリプト:FastAPI + Pydantic v2 + uv
  • Rust API:Axum + serde + utoipa
  • Effect サービスでの WebSocket:Effect Platform Socket
  • プロトタイプは Python で作成し、堅牢化して配布する場合は Rust を使います
  • → domains/backend.md
デスクトップ
  • UI 優先:同じ Web スタックをバンドルする Electron
  • プロセスを分離:コンパニオンバックエンドを WebSocket 経由で localhost 上に置き、preload/IPC は OS API にのみ使います
  • ネイティブ UI:egui(Rust のツール/シミュレーション)または Qt 6(産業用ウィジェット)。ネイティブ性能が目的の場合は Electron を使いません
  • → domains/desktop.md
エージェント
  • Vercel 上の永続的なエージェントアプリ:Next.js + Eve(ファイルシステム優先)+ json-render(生成 UI)+ agent-browser + wterm/just-bash + Vercel Workflow/Sandbox/Drop
  • Ollama(OpenAI 互換)経由でモデルを利用します。AI SDK の openai プロバイダーを使って http://127.0.0.1:11434/v1 に接続します。クラウドモデルは {model}:cloud とします
  • エージェントは agent/ 配下のディレクトリです。instructions、tools、skills、channels、connections、sandbox、subagents、schedules を含みます
  • 制約付き json-render カタログを使って生成 UI を実現します
  • 信頼できないコードはサンドボックスで実行します。影響の大きいアクションには needsApproval を使用します
  • プロトタイプは Vercel Drop で作成し、反復開発には git に移行します
  • → domains/agent.md
静的サイト
  • コンテンツ中心のサイト(ブログ、ドキュメント、マーケティング):Astro + 静的出力 + Tailwind v4 + Bun
  • クライアント側のインタラクティブ性にはアイランドを使います。サイトが実際にアプリでない限り、SPA スタックは避けます
  • 型付きの構造化コンテンツには Content Collections、リッチなレイアウトには MDX を使います
  • → domains/static.md
科学技術
  • C++ 画像処理:CMake + Qt 6 + VTK + ITK
  • Rust の数値計算:ndarray エコシステムを使い、NumPy の移植版を手作業で作ることは避けます
  • → domains/scientific.md
コントラクト
  • TS ↔ TS:モノレポ内で Effect の Schema + HttpApi を共有します。アプリと API の間でコード生成は行いません
  • TS ↔ Python:FastAPI OpenAPI → openapi-typescript;WebSocket → AsyncAPI
  • TS ↔ Rust:utoipa OpenAPI → openapi-typescript;WebSocket → AsyncAPI または asyncapi-rust
  • IPC(Electron/Tauri):Specta または pydantic-to-typescript
  • → domains/contracts.md

ドメインで選ぶ

ドメイン参照先
ユーザー向け SPA またはモバイル UIdomains/frontend.md
API、サービス、スクリプト、またはデータジョブdomains/backend.md
デスクトップアプリまたはネイティブアプリdomains/desktop.md
エージェント型アプリ(Eve + json-render + agent-browser + wterm + Vercel プリミティブ。モデルは Ollama を 127.0.0.1:11434/v1 で使用し、AI SDK openai + {model}:cloud 経由で利用)domains/agent.md
静的コンテンツ、ブログ、ドキュメント、またはマーケティングサイトdomains/static.md
画像処理、数値計算、または科学技術計算domains/scientific.md
UI/サービス境界または言語間の型domains/contracts.md
サプライチェーン、インストールの強化、リリース経過期間のゲーティングdomains/security.md
開発ツール、リンター/フォーマッター、CI、スキャフォールドtooling スキル

スキャフォールド

グリーンフィールド向けのスターター構成は tooling/scaffolds/ にあります。ファイルを生成する前に tooling/scaffolds/README.md をお読みください。

組み合わせ

  • デスクトップ UI + ローカルバックエンド → domains/desktop.md + domains/backend.md + domains/contracts.md
  • 完全なエージェント型スタック(Next.js + Eve + json-render + agent-browser + wterm + Vercel + AI SDK openai 経由の Ollama):domains/agent.md
  • 新しいリポジトリのセットアップ → ドメインファイル(複数可)+ tooling スキル(tooling/domains/dev.md、tooling/scaffolds/)+ domains/security.md

コメント