Skip to content

プロジェクト概要 / Claude向けオンボーディング #1

Description

@tofu-dev0123

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 の挙動・設定探索・部分起動の要否など)はまだ確定していないため、実装着手前に作者と仕様を詰めること。

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions