Stackwake — プロジェクト概要
このIssueは、本リポジトリで開発を担当するClaudeへのコンテキスト共有(オンボーディング)です。
これは何か
ポリレポ(機能ごとにリポジトリが分かれた)構成のWebアプリを、1つの設定ファイルと1コマンドで開発環境として一斉に立ち上げる言語非依存なCLIツール。
- パッケージ/ブランド名:
Stackwake(stack=アプリに必要なサーバー/プロセス一式、wake=一斉に起こす)
- コマンド名:
swk(npm・GitHub・ローカル環境で衝突なしを確認済み。二階建て構成)
- タグライン: "Wake your whole stack with one command."
解決する課題
frontend/backend など複数リポジトリでの開発時、毎回「各リポに cd → 個別に dev サーバー起動 → 個別に pull / status確認」を手動で繰り返すのが面倒。これを横断的に自動化する。
コマンド(MVP、git方式のサブコマンド)
swk up … 未cloneなら自動clone → 各リポの起動コマンドを子プロセスで起動 → リポ名プレフィックス・色分けで出力集約 → Ctrl+Cで一括停止
swk status … 全リポのブランチ / 差分有無 / ahead-behind を一覧
swk pull … 全リポを一括 git pull
差別化ポイント
単なる複数プロセス実行ツール(Overmind等)ではなく、**Gitリポジトリ前提の機能(未clone自動clone・一括pull・横断status)**を持つ点。「ポリレポ特化のProcfile的ツール」というポジション。
スコープ
- 射程: 起動コマンドは
npm run dev / uvicorn / gradle など任意(言語非依存)。将来的にマイクロサービス群やワーカー構成も対象。
- v1スコープ外: 特定ターミナル依存機能、AIエージェント連携、Windows完全対応。
想定技術スタック
Node.js / commander(CLI)/ simple-git(Git操作)/ execa(子プロセス)/ js-yaml(設定)/ chalk(色分け)
設定ファイル stackwake.yml(たたき台・未確定)
name: my-webapp
defaults:
start: npm run dev
repos:
- name: frontend
path: ./frontend
url: git@github.com:you/frontend.git
- name: backend
path: ./backend
url: git@github.com:you/backend.git
start: uvicorn main:app --reload
学習ゴール
本プロジェクトの主目的は、CLIツールをOSSとしてnpm公開するまでの一連のフロー(ドキュメント設計・配布導線・CI/CD・バージョニング・リリース・運用)を学ぶこと。言語習得が目的ではない。
運用方針
- ブランチ戦略: GitHub Flow(
main トランク + 短命な feat/・fix/・docs/ ブランチ + PR + タグでリリース)
- リリース:
main にタグ vX.Y.Z → CIで自動 npm publish(--provenance)
- コミット規約: Conventional Commits を想定
現状 / 次のステップ
- 現状:
LICENSE(MIT)のみ。
- 詳細な概案・意思決定の経緯・学習ログは作者の別リポジトリ(
life)に格納済み。
- 次: MVP仕様の確定 → ドキュメント/ADR整備 → 実装。
詳細設計(swk up の挙動・設定探索・部分起動の要否など)はまだ確定していないため、実装着手前に作者と仕様を詰めること。
Stackwake — プロジェクト概要
このIssueは、本リポジトリで開発を担当するClaudeへのコンテキスト共有(オンボーディング)です。
これは何か
ポリレポ(機能ごとにリポジトリが分かれた)構成のWebアプリを、1つの設定ファイルと1コマンドで開発環境として一斉に立ち上げる言語非依存なCLIツール。
Stackwake(stack=アプリに必要なサーバー/プロセス一式、wake=一斉に起こす)swk(npm・GitHub・ローカル環境で衝突なしを確認済み。二階建て構成)解決する課題
frontend/backend など複数リポジトリでの開発時、毎回「各リポに cd → 個別に dev サーバー起動 → 個別に pull / status確認」を手動で繰り返すのが面倒。これを横断的に自動化する。
コマンド(MVP、git方式のサブコマンド)
swk up… 未cloneなら自動clone → 各リポの起動コマンドを子プロセスで起動 → リポ名プレフィックス・色分けで出力集約 → Ctrl+Cで一括停止swk status… 全リポのブランチ / 差分有無 / ahead-behind を一覧swk pull… 全リポを一括git pull差別化ポイント
単なる複数プロセス実行ツール(Overmind等)ではなく、**Gitリポジトリ前提の機能(未clone自動clone・一括pull・横断status)**を持つ点。「ポリレポ特化のProcfile的ツール」というポジション。
スコープ
npm run dev/uvicorn/gradleなど任意(言語非依存)。将来的にマイクロサービス群やワーカー構成も対象。想定技術スタック
Node.js / commander(CLI)/ simple-git(Git操作)/ execa(子プロセス)/ js-yaml(設定)/ chalk(色分け)
設定ファイル
stackwake.yml(たたき台・未確定)学習ゴール
本プロジェクトの主目的は、CLIツールをOSSとしてnpm公開するまでの一連のフロー(ドキュメント設計・配布導線・CI/CD・バージョニング・リリース・運用)を学ぶこと。言語習得が目的ではない。
運用方針
mainトランク + 短命なfeat/・fix/・docs/ブランチ + PR + タグでリリース)mainにタグvX.Y.Z→ CIで自動 npm publish(--provenance)現状 / 次のステップ
LICENSE(MIT)のみ。life)に格納済み。