💻 システム開発

SCALE_Base_設計書

最終更新 2026年05月04日 / 31_システム開発部/_SCALE_Base_設計書.md

SCALE Base 設計書

SCALE 社の統合オペレーションシステム。全社の業務ハブ。
このノートはシステム編集の都度更新する_SCALE_全システム実装ルール#3 システム設計書を最新に保つ 参照)。


基本情報

項目
本番URL https://scale-base.pages.dev/home/
ローカルパス /Users/oogushiyuuki/Library/CloudStorage/GoogleDrive-y-ogushi@scale-group.co.jp/マイドライブ/AI/scale-base/
Cloudflare Pages プロジェクト名 scale-base
フレームワーク Next.js 16 App Router (AGENTS.md 参照: 旧 Next.js と仕様が違う)
言語 TypeScript strict
データ層 Cloudflare KV (https://scale-task-cron.y-ogushi.workers.dev)
デプロイ bash scripts/deploy.sh(pre/post スナップショット自動取得)
バックアップ保存先 ~/scale-base-backups/(local)+ AI/scale-base-backups/(Drive)

サイドバー構成(systems.ts)

全体(モノリス内に統合)

システム サブナビ数 内部URL
AIアシスタント 4 /assistant
Task 5(変更禁止) /tasks/work-log
サイト一覧 1 /sites
Design Studio 5 /design
Writing 4 /writing
Docs 5 /docs
管理 1 /admin
更新履歴 1 /changelog
PW管理 1 /pass●●●●●●
日程調整 1 /scheduling
AI Ops 1 /ai-ops
Data Lake 1 /datalake

各部署(内部リンク・サブナビ復元済み)

システム サブナビ数 部署
X 30 マーケティング
SEO 14 マーケティング
HP管理 13 マーケティング
Command Center 6 事業戦略
Recruit (id=hr) 14 人事
Finance (id=accounting) 17 コーポレート
サービス管理 7 システム開発
SCALE CRM 10 FS/PM/品質管理
Brand & PR 8 ブランド・PR
R&D Lab 8 R&D
Partners & Academy 7 人事
Contracts 1(page.tsx 単体) コーポレート

外部リンク(独立 SaaS として完成済み・externalUrl 経由)

システム 飛び先
FS https://scale-fs.pages.dev/login/
PM https://scale-pm.pages.dev/
SCALE CRM https://crm.scale-group.co.jp/base/

Task システム(最重要・変更禁止)

5項目ナビ構成(絶対固定)

作業報告 → /tasks/work-log
タスク管理 → /tasks/list(サブナビで タスクシート/今日やる/マイタスク/定例タスク/事業ゴール/業務ワークフロー/更新履歴 を横断)
レポート → /tasks(サブナビで ダッシュボード/稼働レポート)
カレンダー → /tasks/calendar
設定 → /tasks/settings(/tasks/members にリダイレクト、サブナビで メンバー管理/Slack連携/連携ツール)

絶対に旧構成(目標管理・今日のフォーカス・カンバン・設定)に戻さないこと。

サブナビ実装

  • components/tasks/SubNav.tsx
  • app/(dashboard)/tasks/layout.tsx が全 tasks 配下に適用

データ層

  • lib/tasks-data.ts廃止済み・使用禁止
  • lib/tasks-api.tsxTasksProvider + useTasks() 経由で Cloudflare KV から取得
  • app/(dashboard)/layout.tsxTasksProvider のラップ必須(削除禁止)

主要機能(最新)

  • 作業報告ダッシュボード(朝日報・作業開始・作業中ボード・作業終了・夜日報の連続フロー)
  • 長期タスクの累計時間集計(複数セッション跨ぎ)
  • 超過警告(推定 vs 実測の乖離を「+30分超過」として赤色表示)
  • 朝日報の chip 機能:
  • 「記載なし」クリックでその場に EstimateMinutesPicker
  • 残時間ベース集計+超過は別欄警告
  • 作業中ボード(ActiveBoard):
  • 通常タスク / 定例タスク(PJT別)/ マイタスク(朝日報未選択)の3セクション
  • 累計時間表示(過去セッション + 現セッション)
  • ドラッグ&ドロップ並び替え + 複数選択
  • タスク追加直後に詳細モーダル自動オープン
  • 定例タスク:
  • 複数担当(assignees)対応
  • インライン編集(担当者・スケジュール・最終実施・目安時間・メモ)
  • ドラッグハンドルで並び替え(PJT内のみ)
  • 月最終営業日(dayOfMonth=-2)対応
  • Slack 通知:
  • 朝日報・作業開始・作業終了・夜日報を Bot Token 経由で送信
  • 各タスクに残/累計/超過の suffix 付加

名前表記ルール

  • プルダウン・サンプルデータは「大串」「細川」に統一(フル表記は SNS 表示名・法人代表者名のみ)
  • 柴田(脱退)はプルダウン・サンプルから除外

認証システム

構成

  • lib/auth-context.tsx: AuthProvider + useAuth
  • sessionStorage で user 情報を保持(key: sb_user
  • demo ユーザー(大串 / 細川 / その他 AI エージェント名義)はコード内定義

クロスドメイン認証ブリッジ

  • lib/external-auth.tswithAuthQuery(url, user) で URL に ?auth=<base64> を付加
  • 受信側(旧分離システム)の lib/auth-context.tsx で URLSearchParams から復元
  • パスワードは送らない(id / name / email / allowedSystems のみ)
  • 現在は SCALE Base 内部統合で使用頻度低下、外部 SaaS(FS / PM / SCALE CRM)への遷移時に有効

権限制御

  • lib/always-allowed-systems.tsisSystemAccessible() で判定
  • ALWAYS_ALLOWED_SYSTEMS(changelog 等)は全員可視
  • それ以外は user.allowedSystems に含まれる場合のみ表示

バックアップ・復元システム

スナップショット

  • bash scripts/snapshot.sh で取得
  • bash scripts/snapshot.sh --label=<作業名> でラベル付き
  • 保存先(二重化):
  • Primary: AI/scale-base-backups/(Drive)
  • Local: ~/scale-base-backups/
  • tar.gz 形式・最新30世代まで保持・~1.5MB/世代

deploy.sh

  1. pre-deploy snapshot 自動取得
  2. /tmp 経由でビルド(日本語パス対策)
  3. Cloudflare Pages にデプロイ
  4. post-deploy snapshot 自動取得

復元

bash scripts/snapshot.sh --list                       # 一覧
bash scripts/snapshot.sh --restore=<タイムスタンプ>   # 展開

復元時は systems.ts と changelog.ts はファイル単位で内容確認してから上書き_SCALE_全システム実装ルール#事故 2 参照)

Cloudflare Pages デプロイ履歴

本番表示の巻き戻しはダッシュボードから可能:
https://dash.cloudflare.com → Pages → scale-base → Deployments → "Rollback to this deployment"


ドキュメント運用

changelog.ts(更新履歴)

  • lib/changelog.tsCHANGELOG 配列最上段に毎回エントリ追加
  • 編集時は 配列全置換禁止・append のみ(事故 1 参照)
  • 末尾のユーティリティ関数(getCategoryLabel / getCategoryColor)は触らない
  • 閲覧URL: /changelog

Vault連携

  • システムアップグレードのたび、このノートと _SCALE_全システム配置マップ を更新する
  • 大きな変更は日付付きノート 2026-XX-XX_SCALE_Base_xxx.md31_システム開発部/ に作成

統合済み機能(時系列・直近)

日付 機能 スコープ
2026-04-29〜30 各システム分離プロジェクト(X / Finance / Recruit / Services / HP-Admin / CRM / Partners / Command / Brand / R&D / Contracts) 全体
2026-04-30 認証ブリッジ実装(externalUrl + ?auth= 全体 / auth
2026-04-30 朝日報の chip 機能(残時間 / 超過 / 記載なしクリック→Picker) tasks / morning
2026-04-30 累計時間集計(複数セッション跨ぎ・超過警告) tasks / work-log
2026-04-30 定例タスク 月最終営業日対応・複数担当 tasks / routines
2026-04-30 autoRegisterMemoTasks に bottomTasks 渡し(重複生成防止) tasks
2026-04-30 作業中ボード: タスク追加直後に詳細モーダル自動オープン tasks / active
2026-05-01 朝日報「記載なし」chip クリックでその場時間入力 tasks / morning
2026-05-01 定例タスク複数担当・インライン編集 tasks / routines
2026-05-01 分離撤回(X / Command / Recruit / Finance 等を SCALE Base 内部に統合) systems
2026-05-01 サブナビ全システム復元(11 システムに sections 定義) systems
2026-05-01 作業中ボードに「マイタスク(朝日報未選択)」セクション追加 tasks / active
2026-05-04 作業開始報告の「前回セッション進行中タスク」セクション削除 tasks / start
2026-05-04 目安作業時間の自由入力を「時間+分」2フィールドに変更 tasks / EstimateMinutesPicker
2026-05-04 タスクリマインド全停止(scale-task-cron の cron トリガー = []) tasks / cron

最新の詳細は lib/changelog.ts 参照(3049+ 行)

_SCALE_Base_最新基準点 を必ず参照 — 最新スナップショットのラベルと復元コマンドあり。


保護資産(絶対に消さない・触らない)

コード

  • lib/tasks-api.tsxTasksProvider + useTasks()
  • app/(dashboard)/layout.tsxTasksProvider ラップ
  • components/tasks/SubNav.tsx(Task 5項目ナビ)
  • lib/changelog.ts の末尾ユーティリティ関数(getCategoryLabel / getCategoryColor

ルール

  • Task ナビ構成(5項目・#Task システム(最重要・変更禁止) 参照)
  • 名前表記(大串 / 細川)
  • KV API エンドポイント(https://scale-task-cron.y-ogushi.workers.dev

関連ノート


設計書 更新履歴

日付 内容
2026-05-01 初版作成(5項目Task構成・分離撤回後の状態を記録・直近の機能アップデート反映)