# OpenStock Japan

> OpenStock Japan は、スタートアップの株主名簿・資本政策・ストックオプション・株主総会・取締役会・株主コミュニケーションを一元管理する、オープンソースのウェブアプリです。自社で用意した環境で動かし、自社のやり方に合わせて作り変えられます。日本の会社法・税法の実務に合わせて作っています。

- ライセンス: Apache License 2.0（無料。商用利用・改変ができます）
- 提供の形: 自社で用意した環境で動かすウェブアプリ（クラウド版・SaaS はありません）。1 つの環境で 1 社を管理します
- 構成: Next.js（App Router）と Supabase（Postgres・Auth・Storage）
- 対象: 日本のスタートアップの経営者・管理部、投資家・株主、専門家・支援機関
- いまの版: v1.0.0
- AI の機能: 任意。提供元は Anthropic（Claude）・Google（Gemini）・OpenAI から選びます。AI が読み取った内容は候補として表示し、台帳に書き込むのは人が確かめて保存したときだけです
- 開発元: 日本GXグループ株式会社
- ソースコード: https://github.com/japan-gx-group/open-stock-japan

## なぜ作ったか

Excel と PDF と共有フォルダに散らばる株式の記録株主名簿は Excel、契約書は PDF、議事録は共有フォルダ。場所がばらばらだと、資料ごとに数字が食い違い、招集通知や登記の期限は、担当者の記憶に頼ることになります。

OpenStock Japan は、株式の異動を 1 か所に記録します。株主名簿も、資本政策表も、株主総会の準備も、同じ台帳から作ります。

- **台帳がひとつになる**: 株主名簿・資本政策表・新株予約権原簿は、同じ「株式の異動」の記録から作られます。資料ごとに数字が食い違うことがありません。
- **期限と要件が台帳から出る**: 招集通知の期限、決議の要件、登記や申告の期限を、台帳と会議の記録から計算して並べます。根拠の条文も付きます。
- **自社の環境で完結する**: データは、自社で管理するデータベースに置きます。コードは公開されているので、自社のやり方に合わせて作り変えられます。

## できること

- **株主名簿**: 会社法 121 条の記載事項。基準日時点の名簿、Excel 出力、譲渡・分割の記録
- **資本政策表**: 完全希釈化後の比率、J-KISS の転換、次回ラウンドと優先分配の試算
- **資金調達・種類株式**: ラウンドと割当ての記録、種類株式の内容、登記期限の目安
- **ストックオプション**: 回次・割当・行使・失効、ベスティング、税制適格の要件チェック
- **株主総会・取締役会**: 招集通知の期限、決議要件の判定、出欠・委任状、議事録の下書き
- **文書テンプレート**: 招集通知・議事録・J-KISS の書類のひな形を、AI で作る。日付・議案・金額は、台帳から差し込む
- **手続きカレンダー**: 定時総会・登記・申告・役員の任期満了など、期限のある手続き
- **法令ガイド**: 会社法・租税特別措置法などの整理を、アプリの中でも読めます
- **AI 取り込み**: 契約書・登記事項証明書・議事録・決算書の PDF から、台帳へ
- **決算情報**: 期ごとの主要な数字とグラフ。株主への公開
- **株主へのお知らせ**: お知らせ・月次レポートの作成と公開。AI による下書き
- **ライブラリ・共有**: 定款・契約書・議事録の保管、株主ごとの公開範囲、期限つき共有リンク
- **監査への対応**: 追記専用の監査ログ、二要素認証、監査人ロール、アカウントの棚卸し

## 画面

### 会社の画面

- **株主名簿**（`/shareholders`）: 会社法 121 条の記載事項を備えた株主名簿です。（氏名・住所・株式の種類と数・取得日／基準日を指定して、その日時点の名簿を表示／Excel への出力と、譲渡・分割などの異動の記録）
- **資本政策表**（`/cap-table`）: 株主・新株予約権者・転換型証券の投資家ごとの持株と、完全希釈化後の比率を確かめます。（種類株式の普通株換算と、完全希釈化後の比率／J-KISS の転換の試算／次回ラウンドのシミュレーションと、優先分配の試算）
- **ストックオプション**（`/stock-options`）: 新株予約権の回次・割当・行使・失効を管理します。（割当ごとのベスティング／税制適格の要件チェック／新株予約権原簿）
- **株主総会**（`/shareholder-meetings/…`）: 招集から議事録までを、手順に沿って進めます。（招集通知を発する期限の目安／議案ごとの決議要件（普通・特別・特殊決議）の判定／出欠・委任状・書面決議の同意と、議事録の下書き）
- **手続きカレンダー**（`/compliance`）: 期限のある手続きを、台帳と会議の記録から洗い出して並べます。（定時総会・登記・申告・役員の任期満了など／期限超過・30 日以内・今後に分けて表示／根拠の条文つき）
- **ダッシュボード**（`/dashboard`）: 株式と手続きの、いまの状態をひと目で見ます。（発行済株式総数・株主数・完全希釈化後の株式数／持株比率と、株式の種類ごとの内訳／期限の近い手続き）
- **決算情報**（`/financials`）: 期ごとの数字を記録し、株主に公開するかどうかを期ごとに決めます。（売上高・利益・現金及び預金・純資産の推移／通期・半期ごとの記録と、承認の状態／株主への公開・非公開の切り替え）
- **株主へのお知らせ**（`/updates`）: お知らせ・月次レポートを書いて、株主ポータルに公開します。（下書き・公開中の状態を、一覧で確認／株主ポータルでの見え方を、公開の前にプレビュー／AI による下書きと、文書の添付）
- **監査ログ**（`/audit-log`）: だれが・いつ・どこから・何を・どう変えたかの記録です。（追記専用。書き換え・削除はできません／絞り込みと、CSV への出力／アカウントの棚卸しと、改ざんの検査）

### 株主の画面

- **株主ポータル**（`/external-portal`）: 株主がログインして、最初に見る画面です。（会社からのお知らせと、最新の決算情報／自分の保有株式数と、発行済株式総数に対する割合／見えるのは、会社が公開した情報と自分の保有状況だけ）
- **保有状況**（`/external-portal/holdings`）: 株主名簿の記録にもとづく、その株主だけの表示です。（株式の種類ごとの株数・持株比率・取得日／新株予約権（ストックオプション）の残り／J-KISS など、転換型の投資）
- **決算情報（株主向け）**（`/external-portal/financials`）: 会社が公開した期の決算を、グラフと主要な数字で見ます。（売上高と利益、現金及び預金と純資産の推移／主要な数字と、前年同期との比較／会社からのコメント）

## 自社で完結して自社に合わせて作り変える

- **自社の環境で完結する**: 1 つの環境で 1 社を管理します。株主名簿は、自社で管理するデータベースに置きます。クラウド版はありません。
- **自社に合わせて作り変えられる**: Apache License 2.0 で公開しています。無料で、商用利用も、自社に合わせた改変もできます。
- **中身を確かめられる**: 期限の計算も、決議要件の判定も、コードと根拠の条文を読んで確かめられます。

### 自社に合わせて変えられるところ

- **書類のひな形**: 招集通知や議事録のひな形を、自社の書式で作れます。画面からの設定だけで、コードの変更は要りません。
- **データの項目**: 項目は 1 つの定義から、フォーム・API・入力の検証が決まります。列を足して、定義に 1 行足します。
- **AI の提供元**: Claude・Gemini・OpenAI から選び、自社で契約した API キーを使います。使わない設定もできます。
- **コードそのもの**: 開発の約束（AGENTS.md）と、1,500 件を超える自動テストがあります。AI のコーディングエージェントで手を入れるときも、同じ検査で確かめられます。

## 記録と個人情報を守る仕組み

- **追記専用の監査ログ**: すべての変更を、変更前後の値・操作した人・日時・接続元つきで残します。書き換えも削除もできません。
- **二要素認証とログインの制限**: 認証アプリによる二要素認証に対応。ログインの失敗が続くと、一定の時間、受け付けを止めます。
- **5 つのロール**: 管理者・メンバー・閲覧のみ・監査人・株主。監査人は、見るだけで何も変えられません。
- **自社の環境に置く**: 1 つの環境で 1 社を管理します。株主名簿などの業務データは、ブラウザから直接は読めない設計です。
- **AI は候補まで**: AI が読み取った内容は候補として表示します。台帳に書き込まれるのは、人が確かめて保存したときだけです。
- **根拠を公開**: 期限や要件の判定に使う数値と条文を、文書にまとめて公開しています。

できないことと、仕組みの限界は、文書「システム監査への対応」（https://github.com/japan-gx-group/open-stock-japan/blob/main/docs/system-audit.md）に書いています。

## 株主への報告

お知らせ、月次レポート、決算の報告も、同じ台帳の上で書いて公開できます。

1. **書く** — 伝えたいことを箇条書きにすると、AI が下書きにします。AI には、書かれた事実だけを使い、数字や予定を作り出さないよう指示しています。自分で一から書くこともできます。
2. **確かめる** — 株主ポータルでの見え方を、公開の前にプレビューで確かめます。下書きのあいだは、株主には見えません。
3. **公開する** — 公開したものだけが、株主の画面に出ます。添付の文書は「社内のみ・全株主・指定した株主」から公開範囲を選べます。
4. **株主が読む** — 株主は自分のアカウントでログインし、お知らせ・決算・文書を、自分の保有状況と一緒に見ます。スマートフォンでも読めます。

**メールの一斉送信は行いません** お知らせを公開しても、株主にメールは自動では届きません。株主のメールアドレスの一覧をコピーして、お使いのメールソフトから知らせます。

## できないことと使う前提

- クラウド版（SaaS）はありません。Supabase と、Next.js が動く環境を用意して、自社で動かします。
- 1 つの環境で 1 社を管理します。複数の会社を管理する場合は、会社ごとに環境を分けます。
- お知らせを公開したときの、メールの一斉送信は行いません（株主のメールアドレスの一覧をコピーして、自分のメールソフトから知らせます）。
- 登録する人と承認する人を分ける、承認の流れはありません。
- バックアップは取りません。データベースと文書のファイルのバックアップは、運用する会社が行います。
- 画面に出る期限・要件の判定は実務の目安であり、法的な助言・税務の助言ではありません。

## こんな方に

- **スタートアップの経営者・管理部**: 株主名簿と資本政策表を Excel から移し、総会や登記の期限まで 1 か所で管理したい。
- **投資家・株主**: 投資先に、数字の根拠が見える形での管理を勧めたい。
- **専門家・支援機関**: 顧問先・支援先の株式事務を、中身の見える道具で支えたい。

## はじめかた（手元で動かす）

必要なものは、Node.js 24 以上と Dockerです。架空の会社のデモデータが入った環境を、手元のパソコンで動かせます。

```bash
# リポジトリを取得して依存を入れる
git clone https://github.com/japan-gx-group/open-stock-japan.git
cd open-stock-japan
npm install

# ローカルの Supabase を起動する
npx supabase start

# 表示された URL とキーを .env.local に設定する
cp .env.example .env.local

# デモデータ入りでデータベースを作る
npm run db:reset:demo

# 起動する
npm run dev   # http://localhost:3100
```

デモのアカウント（パスワードは、本体の README にあります。デモ用なので、本番では使わないでください）:

| ロール | メールアドレス | できること |
| --- | --- | --- |
| 管理者 | `admin@example.com` | すべての操作。組織の設定、メンバーと株主の招待、AI の設定、監査ログの閲覧 |
| メンバー | `member@example.com` | 業務データ（株主・株式・会議・決算・文書）の閲覧と編集 |
| 閲覧のみ | `viewer@example.com` | 業務データの閲覧 |
| 監査人 | `audit@example.com` | 業務データと監査ログ・アカウントの棚卸しの閲覧。何も変えられません |
| 株主 | `shareholder@example.com` | 株主ポータルだけ。自分の保有状況と、公開されたお知らせ・決算・文書 |

本番で使うときの手順は、セットアップガイド（https://github.com/japan-gx-group/open-stock-japan/blob/main/docs/setup-guide.md）にあります。

## よくある質問

**費用はかかりますか？**

本体は Apache License 2.0 のオープンソースで、ライセンスの費用はかかりません。動かすサーバと Supabase の利用料は、別に必要です。AI の機能を使う場合は、各社の API の利用料もかかります。

**クラウド版（SaaS）はありますか？**

いまはありません。Supabase と、Next.js が動く環境を用意して、自社で動かします。1 つの環境で 1 社を管理する前提です。

**自社に合わせて作り変えられますか？**

できます。Apache License 2.0 なので、商用利用も改変もできます。招集通知や議事録のひな形は、画面から自社の書式で作れます。項目を足すなどコードを変える手順は、リポジトリの「構成と実装の約束」にあります。

**株主には何が見えますか？**

株主のアカウントで見えるのは、自分の保有状況と、会社が公開したお知らせ・決算情報・文書だけです。ほかの株主の氏名・住所・持株数や、社内の画面は見えません。

**株主への連絡はメールで届きますか？**

株主を招待するときは、メールを送れます（Resend の設定が必要です。設定しない場合は、招待のリンクを自分で伝えます）。お知らせを公開したときのメールの一斉送信は行いません。株主のメールアドレスの一覧をコピーして、お使いのメールソフトから知らせてください。

**画面に出る期限や要件の判定はそのまま使えますか？**

実務の目安です。法的な助言・税務の助言ではありません。定款・株主間契約・投資契約の定めと、弁護士・司法書士・税理士の判断が、常に優先します。

**AI に送った内容はどう扱われますか？**

AI の機能は任意で、設定しなくても、ほかの機能はすべて使えます。使う場合は、Claude・Gemini・OpenAI から提供元を選び、自社で契約した API キーを設定します。送る内容には個人情報と機密情報が含まれるので、送った内容が学習に使われない条件のキーを使ってください。送り先は、送信の前に画面に表示します。

**いま Excel で管理している株主名簿から移れますか？**

ある日付の時点の持株を、まとめて登録できます。登記事項証明書や契約書などの PDF は、AI で読み取って、確かめてから台帳に入れることもできます。

**いまの開発の状況は？**

最初の版（v1.0）を公開しました。開発は続けています。不具合の報告と提案は、[GitHub の Issue](https://github.com/japan-gx-group/open-stock-japan/issues)で受け付けています。脆弱性は公開の Issue に書かず、[セキュリティポリシー](https://github.com/japan-gx-group/open-stock-japan/blob/main/SECURITY.md)の手順で報告してください。

## 免責

画面に出る期限・要件の判定は実務の目安であり、法的な助言・税務の助言ではありません。定款・株主間契約・投資契約の定めと、弁護士・司法書士・税理士の判断が、常に優先します。
