業務システム開発ポートフォリオ クラウドワークスで相談

ポートフォリオ トップ開発の進め方と納品物

開発の進め方と納品物

先に書いて、
全部渡します。

AI を使って速く作ります。ただし、要件定義から運用手順までを先に文章にしてから実装します。 このページに並べているのは説明ではなく、6 本のデモに実際に入っているファイルの中身です。

6 リポジトリの設計・運用ドキュメント 61 ファイル / 27,459 行
kizuna-desk ─ AI問い合わせ管理システム
  docs/01-requirements.md            371 行
  docs/02-architecture.md            762 行
  docs/03-database.md              1,058 行
  docs/04-ui.md                      524 行
  docs/05-implementation-plan.md     484 行
  ARCHITECTURE.md / SECURITY.md / TESTING.md
  README.md / DEPLOY.md / CLAUDE.md  ほか

sales-crm ─ 営業・案件管理Webアプリ
  docs/_contract.md                  335 行
  docs/01-requirements.md            603 行
  docs/02-architecture.md            841 行
  docs/03-database-design.md       1,063 行
  docs/04-screen-design.md           931 行
  docs/05-implementation-plan.md     293 行
  ARCHITECTURE.md / SECURITY.md / TESTING.md
  README.md / DEPLOY.md / CLAUDE.md  ほか

gas-ads-report ─ 広告レポート自動集計
  ARCHITECTURE.md                    449 行
  SETUP.md                           286 行
  OPERATIONS.md                      274 行
  README.md / DEPLOY.md / CLAUDE.md

shiori-rag ─ 社内文書AI検索
  ARCHITECTURE.md                    162 行
  README.md                          109 行
  docs/CONTRACTS.md                   60 行
  SECURITY.md / DEPLOY.md / CLAUDE.md

ai-doc-workflow ─ AI文書業務自動化
  CLAUDE.md(要件・仕様書)        1,851 行
  docs/DATABASE.md                   545 行
  docs/SECURITY.md                   536 行
  docs/ARCHITECTURE.md               489 行
  README.md                          448 行
  docs/TESTING.md                    327 行
  docs/DEMO.md                       290 行
  IMPLEMENTATION_PLAN.md / DEPLOY.md

ai-meeting-workflow ─ AI会議後業務自動化
  CLAUDE.md(要件・仕様書)        1,771 行
  docs/SECURITY.md                   590 行
  docs/WORKFLOW.md                   536 行
  docs/TESTING.md                    519 行
  docs/DATABASE.md                   512 行
  docs/DEMO.md                       490 行
  DEPLOY.md                          470 行
  docs/ARCHITECTURE.md               432 行
  workflows/README.md / README.md    ほか

行数は各リポジトリの Markdown ファイルを実測した値です。

出発点

私が最初に書いた指示は、これだけです。

下に並べた 3 本は、リポジトリの CLAUDE.md が出発点です。合計 407 行。 機能の箇条書きと技術スタック、そして最後に 「いきなり実装しないこと」 が書いてあります。 ここから先の設計ドキュメントは、この指示に沿って作ったものです。 4 本目の shiori-rag だけは進め方が異なり、6 段階の設計書ではなく レイヤ間の契約(docs/CONTRACTS.md)を先に固めて 4 レイヤを並行実装しました。 5 本目の ai-doc-workflow も出発点は CLAUDE.md ですが、 こちらは短い指示ではなく 1,851 行の要件・仕様書を先に書き切ってから実装に入っています。 6 本目の ai-meeting-workflow も同じやり方で、1,771 行の要件・仕様書から始めています。

  • kizuna-desk / CLAUDE.md139 行

    # 開発方法
    
    一気にコードを書かず、
    
    1. Requirement
    2. Architecture
    3. Database
    4. UI
    5. Implementation Plan
    
    を作成してから実装してください。
  • sales-crm / CLAUDE.md150 行

    # 進め方
    
    いきなり実装しないでください。
    
    Phase 1
    要件分析
    
    …
    
    Phase 5
    実装計画
    
    まで作成してください。
    
    私が確認した後、実装を開始できる状態にしてください。
  • gas-ads-report / CLAUDE.md118 行

    # ドキュメント
    
    README.md
    
    SETUP.md
    
    ARCHITECTURE.md
    
    OPERATIONS.md
    
    を作成してください。
    
    最初に設計を提示し、私の確認後に実装へ進める状態にしてください。

指示 407 行に対して、出てきた設計・運用ドキュメントはこの 3 本だけで 14,971 行。 この差が、発注者が読める形で残っている部分です。以下はその中身です。

6 段階

各段階で、何が出てくるか。

トップページの「進め方」で挙げた 6 段階を、実物の抜粋で追います。 引用はいずれも実ファイルからそのまま取っています(途中の省略は …)。 表やワイヤーフレームなど桁を揃えた抜粋は、枠の中を横にスクロールすると続きが読めます。

  1. 01

    要件定義

    機能に ID を振り、Must / Should を決めます。曖昧なまま実装に入らないための土台です。

    kizuna-desk / docs/01-requirements.md 371 行
    ### 5.7 Human-in-the-Loop (FR-H)
    
    | ID | 要件 | 優先度 |
    | --- | --- | --- |
    | FR-H-01 | 回答は `draft → pending_review → approved → sent` の順序でのみ遷移する | Must |
    | FR-H-02 | `approved` 以外の回答は送信APIを呼べない (DB制約 + アプリ検証) | Must |
    | FR-H-03 | レビュー時に差し戻し (`rejected`) ができ、理由が必須である | Must |
    …
    | FR-H-07 | 承認済み回答を編集した場合、`draft` に戻り再承認が必要になる | Must |
    | FR-H-08 | 送信失敗時は `failed` となり、再送できる | Should |
    
    **状態遷移図**
    
    ```
                     ┌─────────── reject (理由必須) ───────────┐
                     ↓                                          │
      [draft] ──submit──> [pending_review] ──approve──> [approved] ──send──> [sent]
         ↑                                                  │                   │
         └────────── edit (承認済みの編集は draft へ戻る) ────┘                   │
                                                                                │
                              [rejected] ──edit──> [draft]        [failed] ──retry┘
    ```

    この FR- 番号は、以降の設計書・テスト・チェックリストから参照され続けます。 「どの要件が、どのコードとどのテストで守られているか」を後から辿れる状態にしておくためです。

  2. 02

    アーキテクチャ設計

    層の分け方と、守るべき性質をどこで担保するかを決めます。差し替え可能な箇所もここで決めます。

    kizuna-desk / docs/02-architecture.md 762 行
    ### 7.2 三重の防御
    
    送信可能な回答は `approved` のみ。これを**3箇所**で担保する。
    
    1. **Domain 層** — `transition()` が `approved` 以外からの `send` を拒否する
    2. **Application 層** — `response.service.ts` の `sendResponse()` が実行前に現在の状態をDBから再取得して検証する
    3. **DB 層** — `outbound_messages` に INSERT する際、`responses.status = 'approved'` を要求するトリガー制約を張る
    
    > UIでボタンを隠すことは防御ではなく UX である。3層とは別に数える。

    最後の一行が、この段階でいちばん大事な判断です。「画面に出していないから安全」は設計とは呼ばない、という線引きを文章で残しておきます。

  3. 03

    データベース設計

    テーブル・制約・トリガー・行レベルの権限まで、SQL の形で書き下します。ER 図と索引設計も同じ文書に入ります。

    sales-crm / docs/03-database-design.md 1,063 行
    ### 7.2 ヘルパー関数
    
    `policy.ts` の `isAdmin()` / `isPrivileged()` に 1:1 で対応させる。
    
    ```sql
    -- policy.ts: PRIVILEGED_ROLES = ["admin", "manager"]
    create or replace function public.app_role()
    returns text
    language sql stable security definer set search_path = public
    as $$
      select u.role from public.users u where u.id = auth.uid() and u.is_active;
    $$;
    
    -- policy.ts: isAdmin(user)
    create or replace function public.is_admin()
    returns boolean
    language sql stable
    as $$ select public.app_role() = 'admin'; $$;
    …
    ```
    
    `is_active` を条件に含めることで、無効化ユーザーはトークンが残っていてもデータに触れない(FR-009 の DB 側担保)。

    同じ文書の 7.8 節には、アプリ側の権限関数と DB 側ポリシーの対応表が全件並んでいて、 「片方を変更したら必ずもう片方も変更する。」 と明記されています。権限は 2 か所に書くので、ずれない仕組みを文書側で決めておきます。

  4. 04

    画面設計

    画面ごとにワイヤーフレームを引き、通常表示だけでなく Loading / 空 / エラー / 権限不足の 4 状態を決めます。

    sales-crm / docs/04-screen-design.md 931 行
    ### 5.2 SC-02 ダッシュボード
    
    ```
    ┌─ PageHeader ─────────────────────────────────────────────────────────────┐
    │ ダッシュボード                              [自分の案件のみ ○ ] [期間 ▾]  │
    │ 営業状況の全体像を確認できます                                            │
    └──────────────────────────────────────────────────────────────────────────┘
    
    ⚠ 期日を過ぎた未完了 TODO が 3 件あります                      [確認する →]
    
    ┌──────────────┬──────────────┬──────────────┬──────────────┐
    │ 案件総額      │ 受注見込      │ 受注済み(12M) │ 勝率          │
    │ ¥248,500,000 │ ¥112,340,000 │ ¥86,200,000  │ 62.5%        │
    │ 進行中 42 件  │ 加重平均 45%  │ 前年比 +12%   │ 24勝 / 14敗   │
    └──────────────┴──────────────┴──────────────┴──────────────┘
    
    ┌──────────────────────────────────────┬───────────────────────────────┐
    │ 月別売上見込                          │ ステータス別                   │
    │ ┌──────────────────────────────────┐ │ ┌───────────────────────────┐ │
    │ │  ▁▃▅▂▇▄ ▃▅▆▄▂▁                    │ │ │ リード      12件  ¥52.0M  │ │
    │ │  ■受注済 ■加重見込 ▨パイプライン  │ │ │ ████░░░░░░░░░░░░          │ │
    │ │  3月 4月 5月 6月 7月 8月 ...       │ │ │ 提案        18件  ¥98.5M  │ │
    │ └──────────────────────────────────┘ │ │ ████████░░░░░░            │ │
    │  (ComposedChart / chart-1..3)         │ │ 交渉        12件  ¥98.0M  │ │
    │                                       │ │ 受注        24件  ¥86.2M  │ │
    │                                       │ │ 失注        14件  ¥41.0M  │ │
    │                                       │ └───────────────────────────┘ │
    └──────────────────────────────────────┴───────────────────────────────┘
    …
    ```
    
    | 項目 | 仕様 |
    | --- | --- |
    | データ源 | `db.dashboard.getSummary(ownerId?)` の 1 回呼び出しで `DashboardSummary` を取得 |
    …
    | Empty | データ 0 件時、KPI は `¥0` を表示し、グラフ領域に `<EmptyState … />` |
    | Error | カード単位で `<ErrorState onRetry />`。全体失敗時は `error.tsx` |

    ワイヤーフレームの下には、必ずデータの取得元・表示書式・4 状態の仕様が表で続きます。 「実装してみたら空のときの見た目が決まっていなかった」を無くすための書き方です。

  5. 05

    実装計画

    どの順序で、どの単位で作るか。そして何をもって完了とみなすかを先に決めます。

    sales-crm / docs/05-implementation-plan.md 293 行
    ## 1. 実装方針
    
    | # | 方針 | 理由 |
    | --- | --- | --- |
    | I-01 | 共通契約を最初に凍結し、以後変更しない | 並列実装で最も壊れやすいのはレイヤー間の型の食い違い。契約を先に確定すれば、各担当は互いの完成を待たずに書ける |
    | I-02 | ファイル所有権を担当ごとに排他分割する | 同一ファイルへの同時書き込みを構造的に不可能にする |
    | I-03 | 縦切り(機能単位)で分割する | 横切り(層単位)だと全層が揃うまで 1 画面も動かない。縦切りなら顧客管理から順に動作確認できる |
    | I-04 | デモモードを先に完成させる | 環境変数ゼロで動く状態を保てば、レビューも E2E も外部依存なしで回せる |
    | I-05 | 各担当が自分の担当範囲の単体テストを同時に書く | テストを後工程にまとめると必ず削られる |
    | I-06 | 統合は必ず 1 名が担当する | 契約からの逸脱・型の齟齬は結合時にしか現れない。修正の責任者を 1 人に固定する |

    「方針」だけでなく「理由」の列があるのが要点です。後から仕様を変えたくなったとき、 何を壊すことになるのかが読めば分かります。AI を並列で走らせる前提の分割も、この段階で決めています。

  6. 06

    実装とテスト

    設計書のとおりに実装し、決めた基準を機械で確認します。テストは後回しにせず同時に書きます。

    gas-ads-report / npm test の実行結果 118 件
      [公開ウェブアプリの安全性]
      ✓ 匿名では秘密情報を保存できない
      ✓ 匿名では秘密情報の状態も取得できない
      ✓ 拒否された保存は反映されていない
      ✓ 匿名では設定を診断できない
      ✓ 匿名では日次ジョブを実行できない
      ✓ 偽のトリガーイベントでも実行できない
    …
      ✓ 匿名でもダッシュボードは閲覧できる
      ✓ 操作者が戻れば書き込み系も実行できる
    
    ============================================================
    全 118 項目が成功しました(3 シナリオ / 1248 ms)

    テスト名は日本語です。開発者以外が読んでも「何を守っているか」が分かるようにしてあります。 6 本合計で 3,237 件。数と内訳は次の節に出します。

品質の裏付け

「動きます」ではなく、確認できる形で。

以下の数値はすべて、このページを作る際にリポジトリ上で実測・実行して確認したものです。

6 リポジトリの実測値
リポジトリ 設計・運用
ドキュメント
実装コード 自動テスト
kizuna-deskAI問い合わせ管理 5,131 行 14,935 行 136 件
sales-crm営業・案件管理 8,299 行 36,096 行 1,096 件
gas-ads-report広告レポート自動集計 1,541 行 8,732 行 118 件
shiori-rag社内文書AI検索 529 行 10,429 行 75 件
ai-doc-workflowAI文書業務自動化 4,973 行 31,713 行 703 件
ai-meeting-workflowAI会議後業務自動化 6,986 行 55,771 行 1,109 件
合計 27,459 行 157,676 行 3,237 件

ドキュメント=リポジトリ内の Markdown 61 ファイルの行数(shiori-rag の検索対象コーパスと、ai-meeting-workflow の AI プロンプト 7 本は実装データのため除外)。 実装コード= .ts .tsx .js .gs .sql .css .html の行数(依存パッケージと生成物は除く。テストコードを含む)。 自動テスト=各リポジトリのテストコマンド(npm test)を実行して数えた成功件数です。ブラウザを実際に動かす E2E テストは別枠で、ai-doc-workflow に 39 件、ai-meeting-workflow に 72 件あります。

DB 側の権限

13 テーブル

kizuna-desk は全 13 テーブルで Row Level Security を ENABLE かつ FORCE。 ポリシーは 34 件、集計ビュー 2 件も security_invoker = true で作成しています。

DB 側の防壁

2 トリガー

承認フローの状態遷移ガードと送信ガードは、アプリを通さない書き込みも拒否します。 アプリ側のバグでも承認前の送信は成立しません。

継続的検証

6 本中 3 本

kizuna-desk の GitHub Actions(.github/workflows/ci.yml)は、 lint・型・テスト・ビルドに加え、Supabase を起動してマイグレーションと RLS の統合テストまで実行します。 ai-doc-workflow と ai-meeting-workflow にも CI があり、 npm run verify・ビルド・Playwright の E2E を通します。後者はさらに、 n8n の Workflow JSON に資格情報が埋まっていないかを毎回検査します。 残る 3 本には CI を置いていません(品質ゲートはローカルの npm run verify です)。

kizuna-desk / docs/03-database.md 1,058 行
### 6.5 ★ 回答の状態遷移ガード (Human-in-the-Loop の DB 側防壁)

```sql
create or replace function guard_response_transition() returns trigger
language plpgsql as $$
declare
  ok boolean;
begin
  if old.status = new.status then return new; end if;

  ok := case old.status
    when 'draft'          then new.status in ('pending_review')
    when 'pending_review' then new.status in ('approved','rejected','draft')
    when 'approved'       then new.status in ('sent','draft')     -- 編集で draft へ戻る
    when 'rejected'       then new.status in ('draft')
    when 'failed'         then new.status in ('sent','draft')
    when 'sent'           then false                              -- 終端
    else false
  end;

  if not ok then
    raise exception 'invalid response transition: % -> %', old.status, new.status
      using errcode = 'check_violation';
  end if;
…
end $$;
```
sales-crm / docs/05-implementation-plan.md 293 行
## 6. 品質ゲート

リリース可能とみなす条件。すべて `npm run` で実行できる。

| # | コマンド | 基準 |
| --- | --- | --- |
| Q-01 | `npm run typecheck` | エラー 0 件 |
| Q-02 | `npm run lint` | エラー 0 件 |
| Q-03 | `npm run test` | 全パス |
| Q-04 | `npm run build` | 成功。ビルド時の型・lint エラーを無視しない設定であること |
| Q-05 | `npm run test:e2e` | 全パス |
| Q-06 | 手動確認 | 環境変数ゼロで `npm run dev` が起動し、デモアカウントでログインできる |
| Q-07 | 手動確認 | 375px / 768px / 1440px で主要 8 画面が破綻しない |
| Q-08 | 手動確認 | light / dark 両テーマで主要 8 画面が読める |

AI 駆動開発

AI で速く作り、設計書とテストで裏を取る。

コードは AI に書かせます。隠す気はありません。問題は「AI が書いたかどうか」ではなく、 その結果を誰が・どうやって確かめているかだと考えています。私のやり方は次の 3 つです。

  • 仕様

    設計書は、AI への発注書でもある

    先に書く設計ドキュメントは、そのまま AI に渡す仕様書です。 発注者向けの納品物と、実装のための指示が同じファイルなので、書きっぱなしになりません。

  • 検証

    出てきたコードは、機械で確かめる

    型・lint・テスト・ビルドの全通過を、実装を進める条件にしています。 AI の出力を人の目視だけで通すことはしません。

  • 境界

    プロダクト内の AI も、決定者にしない

    AI 機能は要約・分類・下書きまで。送信や登録は人の承認を通します。 その境界をアプリ層・サービス層・DB の 3 層で担保しています。

先にお答えします

「AI が書いたコードで大丈夫か」への、実物の回答。

大丈夫だと言い切るつもりはありません。実際に 2 件、設計どおりに動かない箇所が見つかっています。 どちらも公開しているドキュメントに、原因と対処と再発防止まで書いてあります。 隠さず残せることが、この進め方の一番の効き目だと思っています。

事例 1 / gas-ads-report

保存は成功、集計は 0 行。例外は出ない。

gas-ads-report / ARCHITECTURE.md 449 行
### 5-11. シートの型変換を前提にする(実際に踏んだ落とし穴)

`setValues()` に `'2026-08-15'` のような文字列を渡すと、セルの書式がテキストでない限り **Sheets はこれを日付値として保存します**。読み戻すと `Date` が返るため、次のコードは静かに壊れます。

```js
const dateKey = String(v[RAW_COL.date]);   // 'Sat Aug 15 2026 00:00:00 GMT+0900 …'
if (dateKey > f.dateTo) continue;          // 文字列比較なので常に真 → 全行が除外される
```

初回のデプロイでこれが発生し、RAW_DATA へ 591 件保存されたにもかかわらず日次集計の対象が 0 行になりました。例外は出ず、通知も「正常完了」だったため、**シートを開くまで気づけない**種類の障害です。
…
**テストへの反映**: このバグをすり抜けたのは、テスト用のインメモリ `SpreadsheetApp` が文字列をそのまま返す「素直すぎる」実装だったからです。本物と同じ型変換を再現するよう修正し、書式を壊した状態でも読み出し側だけで復旧できることを検証するシナリオを追加しました。**モックは本物より寛容であってはならない**、というのがここでの教訓です。

対処は「書き込み時の書式」と「読み出し時の変換」の 2 層。さらに 「RAW に保存したのに集計が 0 行」をジョブの警告条件に加え、同じ壊れ方に次は気づけるようにしています。

事例 2 / kizuna-desk

RLS のポリシーに、承認ゲートの抜け道があった。

kizuna-desk / supabase/migrations/…_fix_update_policy_with_check.sql
-- 修正: UPDATE ポリシーの WITH CHECK にロール条件が欠けていた問題
--
-- 【背景】
--   PostgreSQL は同一コマンドの複数の permissive ポリシーを OR で結合する。
--   UPDATE では USING (更新前の行) と WITH CHECK (更新後の行) が
--   ポリシー単位で対にならず、それぞれ独立に評価される。
--
--   つまり「あるポリシーの USING」と「別のポリシーの WITH CHECK」の
--   組み合わせで通過できてしまう。
--
-- 【検出された穴】
--   1. agent が responses.status を 'approved' に更新できた
--      - responses_update_agent の USING を通過 (status = pending_review)
--      - responses_update_admin の WITH CHECK を通過 (org_id 一致のみを要求)
--      → Human-in-the-Loop の承認ゲートが RLS 層で迂回可能だった
--
--   2. agent が自分の profiles.role を 'admin' に変更できた (自己昇格)
--      - profiles_update_self の USING を通過 (id = auth.uid())
--      - profiles_update_admin の WITH CHECK を通過 (org_id 一致のみを要求)
--
-- 【対処】
--   すべての UPDATE ポリシーの WITH CHECK に、USING と同じロール条件を課す。
--   これにより「更新前は許可、更新後は別ポリシーで許可」という抜け道を塞ぐ。

マイグレーションを上書きせず、修正を別ファイルとして積んでいます。 何が問題で、なぜそう直したかがリポジトリに残り、引き継いだ人がそのまま読めます。

並列で書かせるために、契約を先に凍結する

sales-crm では、実装に入る前に docs/_contract.md でファイルの所有権とレイヤー間の API を固定しています。 型・UI コンポーネントの props 名・命名規則まで先に確定させてあるので、担当を分けても衝突しません。 これは AI を複数走らせるための段取りですが、そのまま人が増えたときの分担表としても使えます。

# 実装契約(全エージェント共通・必読)

このファイルは並列実装時の衝突を防ぐための「所有権」と「レイヤー間 API」の取り決め。
**自分の担当外のファイルを絶対に作成・編集しないこと。** 必要になったら契約に従って import する。

…

## 2. ディレクトリ所有権

```
src/
  app/
…
    (app)/layout.tsx                    [C] Sidebar + Header シェル
    (app)/dashboard/page.tsx            [G]
    (app)/customers/**                  [E]
    (app)/deals/**                      [F]
    (app)/activities/**                 [H]
    (app)/settings/users/**             [D]
    api/**                              使用しない(Server Actions に統一)
…
  lib/
    domain/types.ts                     [済] 触るな
    domain/constants.ts                 [済] 触るな
    utils/cn.ts, utils/format.ts        [済] 触るな
    env.ts                              [済] 触るな
    authz/policy.ts                     [済] 触るな(テストは J が追加)
    data/repository.ts                  [済] 触るな
…
docs/01〜05                             [A]
README.md / ARCHITECTURE.md / SECURITY.md / TESTING.md  [K]
```

納品物

お渡しするもの。

6 本のデモに実際に入っているものと同じ構成です。動くものだけでなく、 次の人が続きをやれる状態までを納品物と考えています。

区分 中身 形式
設計ドキュメント 要件定義 / アーキテクチャ設計 / データベース設計 / 画面設計 / 実装計画 docs/01〜05(Markdown)
技術ドキュメント 構成と設計判断 / セキュリティ方針 / テスト方針 ARCHITECTURE.md SECURITY.md TESTING.md
導入・運用 セットアップ手順 / デプロイ手順 / 日常運用・障害対応・リカバリ / 引き継ぎチェックリスト README.md SETUP.md DEPLOY.md OPERATIONS.md
ソースコード アプリケーション一式。設定は環境変数に外出し、鍵はコードに書きません Git リポジトリ(履歴つき)
データベース マイグレーション / 行レベルセキュリティのポリシー / デモ用シードデータ supabase/migrations/*.sql
テスト 単体テスト / 統合テスト / E2E テスト。実行コマンドは README.md に記載 tests/(実行可能な状態)
動作確認用の環境 外部 API キーなしで全機能が動くモック実装。デモ用データの生成・消去の手順つき 設定 1 つで切り替え

引き継ぎまで、文書に書いてあります。

個人に頼むときの心配は「途中で止まったらどうなるか」だと思います。 運用マニュアルの最後は、次の担当者へ渡すためのチェックリストで終わります。 私がいなくても、この順に確認すれば動かし続けられる状態にしてあります。

gas-ads-report / OPERATIONS.md 274 行
## 10. 引き継ぎチェックリスト

新しい担当者へ引き継ぐ際に確認する項目です。

- [ ] スプレッドシートの編集権限が付与されている
- [ ] Apps Script プロジェクトの編集権限が付与されている
- [ ] `CONFIG.NOTIFY_EMAIL` に新担当者のアドレスが含まれている
- [ ] `秘密情報を設定…` で認証情報の登録場所を把握している(値そのものは別途安全な経路で共有)
- [ ] メニュー操作の一覧(本書 2 章)を確認済み
- [ ] `設定を診断` を実行し、「要対応」が空であることを確認
- [ ] `期間を指定して再取得` の手順を一度試している
- [ ] トークンの有効期限と更新手順を把握している
- [ ] バックアップ方法(本書 6 章)を把握している

実物

ここまでの設計書から、これが出ています。

7 本ともブラウザでそのまま動きます。デモアカウントと画面の説明はトップページにあります。

  • kizuna-desk

    AI問い合わせ管理システム

    AI が要約・分類・回答案を作り、送信は人が承認する。

    デモを見る
  • sales-crm

    営業・案件管理Webアプリ

    顧客・案件・活動を 1 か所に集め、集計と可視化を自動で回す。

    デモを見る
  • gas-ads-report

    広告レポート自動集計

    毎朝 7:00、広告データを取得して集計し、ダッシュボードまで更新する。

    デモを見る

    スプレッドシートを見る

  • shiori-rag

    社内文書AI検索(RAG)

    社内規程やマニュアルに出典つきで答え、記載が無ければ答えない。

    デモを見る
  • ai-doc-workflow

    AI文書業務自動化

    請求書や発注書を AI が読み取り、自信の無い項目だけを人が確認して承認する。

    デモを見る
  • ai-meeting-workflow

    AI会議後業務自動化(n8n)

    会議の文字起こしを AI が整理し、人が承認してから Slack・メール・予定・台帳へ同時に反映する。

    デモを見る
  • ai-browser-automation

    AIブラウザ業務自動化

    APIの無い既存Webシステムへ、AIが判断し人が承認した内容をブラウザ操作で自動登録する。

    デモを見る

トップページへ戻る:7 本の画面キャプチャ・機能・技術スタック・デモアカウントはそちらにまとめています。

お問い合わせ

まず、設計書だけ
作ることもできます。

いきなり全部を発注しなくて構いません。 要件定義とアーキテクチャ設計までを先に作り、中身を見てから実装を判断する進め方も承ります。

  • 業務の自動化(GAS / スプレッドシート連携)
  • 社内向け業務 Web アプリの新規開発
  • 既存システムの設計ドキュメント整備

ご相談窓口

クラウドワークス

クラウドワークスで相談する

契約・仮払い・ご連絡はクラウドワークス上で承ります。現在の手順 / 頻度 / 使っているツール / 希望時期を、分かる範囲でお知らせください。