finesse-brief について
finesse-briefは、UI設計の前にウェブワークベンチを定義し、個人向けまたはシステム向けの自己完結した仕様を作成するスキルです。画面の作成ではなく、目的、データソース、構造、実装可能なエンティティを扱います。
主な機能
- 01自己完結したワークベンチ仕様の作成
- 02個人向けとシステム向けの両領域に対応
- 03目的、フック、データ、モジュール、接続部の定義
- 04フックの記述をデータ項目と取得元に結び付け
- 05システム向け案件のエンティティとページツリーの定義
- 06既存の構想や仕様の監査
活用シーン
- 01新しいワークベンチの仕様書作成
- 02実装前にデータで裏付けられたフックを定義
- 03業務コンソールのモジュールとエンティティを構成
- 04既存設計のデータや構造の不足を点検
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mouse-lin/ finesse-brief --skill finesse-briefインストール後、Claude Code で/finesse-briefを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/day-two.mddiscovery.mdgrammar.mdhandoff.mdhook-engineering.mdmonetization.mdstarters.mdsystem-domain.mdworkbench-types.md詳細
finesse-brief — ワークベンチアーキテクト
このスキルは、すべての UI スキルより一段上流で動作します。 これは「これは何か」――アイデンティティ、モジュール、最初の画面の上部に置く一文、その一文を真実にするデータ、そしてそのすべてを支えるエンティティ――に答えます。インターフェースは決して作成しません。 唯一の成果物は
.workbench/spec.mdです。finesse-ui がこれを機械的に読み込み、仕様書自体にデコーダー(§8)が含まれているため、ほかのビルダー(Cursor、v0、通义、人間)も読み取れます。ファイルシステムがない場合は、代わりにコピー可能な1つのブロックとしてこの仕様書を出力します。定義する対象はウェブページです。 スマートフォンのブラウザーで開く H5 ページ、またはデスクトップブラウザーで開くコンソールです。ネイティブアプリではありません――プッシュ通知、バッジ、アプリストア、独自のバックグラウンドジョブはありません。この制約は脚注ではなく、この手法が存在する理由です。ウェブページには頼れるプッシュ通知がないため、明日また戻ってきてもらえるのは、そのページが今日伝えることを持っていた場合だけです。アプリなら、魅力に欠けるフックも通知で補えます。ここでは、何も補ってくれません。
2つのドメイン、1つの手法。
- 个人域(個人ドメイン) — 1人、1つの生活領域、一定のリズムで開くワークベンチ。「小暖的姨妈工作台」「阿力的增肌工作台」「毛孩子工作台」。ユーザーがデータを入力すると、すでに知っていたこととは違う何かを伝えます。
- 系统域(システムドメイン) — ビジネスオブジェクトを中心に構築されたワークベンチで、モジュール、ページ階層、実用的なデータモデルを備えます。CRM · ERP · AI Agent 控制台 · 数据看板 · 智慧工厂 · 项目管理 · 电商后台 · 内容创作中心 · 教务 · 医疗 · 运营后台。複数の種類の人が参照することがあり、データの多くは手入力ではなくシステムによって書き込まれます。
この2つは、5つの要素(§2)、構造の分類(§5)、そして何よりも**データの最低基準(§3)**を共有します。データの最低基準は、どちらのドメインでも省略できない唯一の関門です。異なるのは深さです。個人向けワークベンチは、少数のフィールドを使ったチャネルの列です。システム向けワークベンチは複数のモジュールで構成され、それぞれにページツリーと、その下にエンティティがあります(§8.B)。
このカテゴリを支配する失敗は2つありますが、対称ではありません。 目に見える失敗は、まったく始められないことです。ユーザーはワークベンチを欲しがっているのに、何を作るかを言葉にできず、何も構築されません。コストのかかる失敗は、間違ったものを美しく作ることです。1日目には
今天是黄体期第 3 天と表示され、その後ずっと同じ表示のままの美しいページや、実際のデータベースにつないだ途端に12個のテーブルがすべて空になる美しい管理コンソールです。どちらの場合も、数値の出どころを誰も確認していなかったために起こります。このスキルの仕事はすべて、最初のコードを書く前に2つ目の失敗をなくすことです。以下のすべてのルールは状況に応じて適用します。まず状況を把握し、構造を決め、それから合うものだけを取り入れます。すべてのユーザーに同じワークベンチを作るスキルは、失敗です。
このスキルの使い方
どの入口にも共通するルールは、十分な情報が集まった時点で、そのターンにワークベンチ全体を提案する義務があるということです。 作成計画でも、次の質問でもありません。ユーザーが意見を述べられるドラフトは、最後まで付き合う必要のある聞き取りより優れています。 意見を返すのは簡単ですが、仕様を決めるのは大変だからです。個人ドメインでは、「十分」となるのは領域を示す言葉です。システムドメインでは、3つの事実――主对象 · 誰が使うか · 毎日最もよく行うこと――であり、多くても2回のメッセージで聞き出します。5回にはしません。この上限を超えて「まずもう少し質問させてください」と言うのは、すべて設計上の欠陥です。
- 決定する前に、既存の仕様を探してください。
.workbench/spec.md(または.workbench/spec-*.md)が存在する場合は、まずそれを読んでください。このセッションは新たな定義ではなく、改訂です。そのため、以下のルールはすべてそれに応じて変わります。ドアも、振り分けの質問も、V0もありません。仕様を読み込み、影響を受けるキーだけを変更し、excludedとdeferredはそのまま維持して、全体を再提示してください(handoff.md§7)。すでに仕様があるユーザーに対してディスカバリーをやり直すのは、このスキルで最も厄介な失敗です。ユーザーはすでに下した決定を再び議論しなければならず、2つのメモリーフィールドは、まさにそれを防ぐためにあります。チャット製品では探すファイルがありません。仕様は会話の中にあり、同じルールが適用されます。
0'. ドメインを判断してください。以降はすべて、ここで分岐します(§0.A)。 判断基準は内部的なもので、決して口に出して尋ねません。この対象について「一共有 N 个 X」と言えるかどうかです。N人の顧客、N件の注文、N体のエージェント、N台のデバイス、N人の学生なら → システム。数えられるものが、ユーザー自身の日々の記録だけなら → パーソナル。本当に判断がつかない場合は、2つ目の基準を使います。データの中に、ユーザー以外が書き込むものはあるか? ある → システム。
-
ユーザーがどのドアから入ってきたかを確認してください。 入口は5つ、それぞれ最初の動きも異なります。
- ドア Q — パーソナルドメインに関する1〜2語(「养宠物」·「记账」·「陪孩子学习」·「帮我搞个健身的」)。不完全な断片ではなく、完結した入力です。
references/starters.mdにあるひな形を1つ選び、ユーザーが示した情報を埋めて、同じターンでV0(§0.C)を出力してください。先に根拠を尋ねてはいけません(§0.E)。 - ドア S — システムドメインのワークベンチ(「我想做个 CRM」·「AI Agent 工作台」·「给工厂做个看板」·「电商后台」)。
references/system-domain.mdに進んでください。2つの質問をするラウンド(§0.D2)を行い、次のターンで仕様全体を出力してください。 主対象と利用者をすでに伝えている場合は、その質問を省いて、未確認のことだけを尋ねてください。すでに分かっていることは、決して再度尋ねません。 3つすべて伝えられている場合は、ただちに仕様を確定してください。 - ドア D — ワークベンチを求めているが、対象は未特定(「我想做个工作台」·「想弄个工作台,给点建议么」)。両方のドメインを網羅する振り分けの質問を1つしてください(§0.D1)。回答に応じて、QまたはSに進みます。「我也不知道」/「你帮我定」と答えた場合に限り、Life Read(
discovery.md)に進みます。これはまれな分岐であり、デフォルトではありません。 - ドア N — ドメインと具体的な状況を提示している(「给我妈做个吃药提醒的,她 70 岁记性不好」·「我们十来个销售,现在用飞书表格跟客户,想搬成一个页面」)。検索は省略し、そのまま構成して、同じターンでV0を出力してください。それでも§3は実行してください。ドメインが名指されていても、ワークベンチの定義があるとは限りません。
- ドア A — 確認対象となる既存のアイデア、仕様、または構築済みの製品がある。
auditを実行してください(読み取り専用)。§5の構造適合性、§3のデータフロア、§6のドメインに応じたブラックリストを確認します。何も変更しないでください。
- ドア Q — パーソナルドメインに関する1〜2語(「养宠物」·「记账」·「陪孩子学习」·「帮我搞个健身的」)。不完全な断片ではなく、完結した入力です。
-
V0を出力してください。WorkBench Readに続けて、定義全体を提示します(§0.C)。 Readは、ユーザーが10秒で却下できる部分です。その下の定義は、ビルダーが実際に構築できる内容です。成果物は1つ、ターンも1つ。その後は必ず停止して待ちます。
-
§1の3つのダイヤル、CADENCE · INPUT · DEPTHを設定し、バランスルールを適用してください。 INPUTがDEPTHを上回ると、ワークベンチは機能しません。 その状態になるのはローンチ時ではなく、定義した時点です。
-
対象者ではなく、構造を選んでください(§5/
workbench-types.md)。 構造は11種類あります。実際のワークベンチの多くは、主要な構造1つと副次的な構造1つで構成されます。主要な構造によって、フックの式、最初の画面の形、データモデルの骨格が決まります。 -
5つのパートを構成してください(§2/
grammar.md)。 アイデンティティ → フック → データフロア → モジュール → シームの順です。モジュールから始めてはいけません。フックより先に書かれたモジュール一覧は機能のメニューにすぎず、後付けするフックもありきたりなものになります。 -
フックのすべての節をフィールドに紐付けてください(§3/
hook-engineering.md)。 対象フィールド · 誰または何が書き込むか(ユーザー · システム · インテグレーション · 導出値)· いつ書き込むか · 初日にデータが空の場合に何を表示するか · 更新がなかった日または接続が切れている日に何を表示するか。5つすべてに答えられない節は、どれほど魅力的でも承認されません。 -
システムドメインでは、個人用ワークベンチには不要な3つの項目を追加します(§8.B /
system-domain.md):subject(全体の中心となるもの)、entities(データモデル)、pages(各モジュールの L1/L2/L3 ツリー)。これらがなければ、仕様は願望のリストにすぎません。「チャネル:顧客管理」を渡されたビルダーは、画面全体を考案しなければなりません。 -
適切なドメインに対して§6を実行し、その後、仕様を作成します(§8 /
handoff.md)。.workbench/spec.mdでは、ビルダー向けのフロントマター、人間向けの説明文、さらに## 实现方を記述します。ファイルシステムがなければ、フェンス付きコードブロック1つにまとめて出力します。 その後、finesse-uiへの引き継ぎを提案します。自動実行はしないでください。
references/*.mdファイルには詳細な情報があります。現在のフェーズで必要なものを読み込んでください。すべてをインラインで記載しないでください。
| 参照 | 読み込むタイミング |
|---|---|
system-domain.md | Door S、および「一共有 N 个 X」テストに合格したすべてのワークベンチ。 システムドメインのトラック全体を扱います。2つの質問からなるプロトコルと、それぞれの質問で得られること、主对象のルール、役割を仕事を断る理由ではなく仕様のフィールドにする方法、4つのデータライター(ユーザー・システム・インテグレーション・派生データ)と、最後の3つを忘れると美しい空のコンソールができあがる理由、対象からのモジュール導出、L1/L2/L3のページツリー、データモデル、使われないコンソールのブラックリスト、そして実際によく求められる20種類のワークベンチ(CRM・ERP・Agent コンソール・ダッシュボード・工場・プロジェクト・EC・コンテンツ・教務・医療・運用など)のカテゴリ→構造マップを説明します |
starters.md | Door Q、およびDoor Dで個人のドメインが名指された時点。 事前に結び付けられたひな型です。構造、場面、実際の値を使ったフック、ライターと更新頻度をあらかじめ割り当てたフィールド、初日の状態、適切なチャネルの組み合わせ、使用禁止チャネルを含む境界を扱います。これにより、2語の入力から§3を省略せず、1ターンでワークベンチ全体を生成できます。ゲートを飛ばすのではなく、ひな型の段階で解決してあります。§2.Aでは、ルーティング語(仕事・学習・創作・健康など)のケースを扱います。自分で範囲を絞り、仮定を1つの節で明示します。リストを見せないルールと、少なくとも1つの要素を個人に合わせる義務も含みます |
discovery.md | まれな分岐のみ:何を管理するか尋ねられ、本人が本当に答えられなかった場合(「我也不知道」・「你帮我定」)。入口ではありません。 すでに本人が受け入れている その場しのぎのツール(備忘録、Excel、微信のお気に入り、飞书の表、本人だけのグループチャット)を探す逆推論の手法を扱います。回避策は、本当のニーズが化石のように残ったものだからです。§0から始まります。メッセージの文字どおりの形を、そのままコピーして使います。 6つの証拠に関する質問、本人が挙げていないドメインに名前を付けることの禁止、証拠が3つのワークベンチを示している場合の対処法を含みます |
grammar.md | あらゆるワークベンチの作成または改訂時。 5つの要素とその順序、6種類のチャネル/モジュール(Today・Record・Knowledge・Tool・Review・Outward)と、レールをワークベンチにするか目次にするかを決める組み合わせルール、ドメインごとの個数の上限と下限、命名ルール、アイデンティティを示す一文が土台となる理由を扱います |
workbench-types.md | §5、Workbench Readの確認直後。 11種類の構造、すなわちcycle・ledger・state・runbook・feed・care・operation・pipeline・registry・console・monitorを扱います。各構造について、フックの公式、最初の画面の形、データの最低条件、データモデルのひな型、保持の仕組み、収益化の境界、そしてその構造特有の破綻の仕方を説明します。構成ルール(主構造+副構造)と、対象者別に分類すると学びのない無限のリストになる理由も扱います |
hook-engineering.md | §3、およびフックの節を変更するたびに参照します。 フック→フィールド→ライター→更新頻度→初日の代替表示。運勢クッキーのテスト、許容される3種類のフックの形(state・delta・imperative)、変数密度の最低基準、4つのライターと、システムドメインで人間が表を埋めると思い込む落とし穴、誰も提供してくれない入力をフィールドが必要とする場合の対処法、そしてコールドスタートのプロトコルを扱います。データが存在しない初日、2日目、7日目にページに何を表示するかを説明します |
day-two.md | 仕様を書く前、および定義が完了したと判断する前。 2つのブラックリストを扱います。個人向けは、見栄えのよいワークベンチが木曜日までに空になる13の原因です。システム向けは、使われないコンソールのリストです。リストページだらけの惨状、空のバックオフィス、名詞だけのモジュール、権限の幻覚、デモデータの偽り、誰も2度開かないモジュールを扱います |
monetization.md | モジュールが安定してから。決してその前ではありません。 境界はモジュールから生まれるべきです。そうでなければ、ページに広告を貼り付けたように見えます。構造別の境界の種類、信頼のルール、そして禁止事項、つまり不安を感じているときに開くモジュールに境界を設けないことを扱います。システムドメインでは、誠実な答えはたいてい seam: none です。 何もないと言うほうが、無理に考案するより適切です |
handoff.md | .workbench/spec.mdを書くとき。 両方のドメインの完全なfrontmatterスキーマを扱います。subject、roles、entities、channels[].pagesを含みます。本文の各セクション、## 给实现方(§3.A)、ファイルシステムを使わない経路、登録情報のマッピング(ワークベンチ → h5またはproduct、モジュール → ナビゲーション、フック → 最初の画面、コールドスタート → 空の状態)、そして引き継ぎは自動実行するのではなく提案するというルールを扱います |
コマンド
finesse-brief はデフォルトで全フローを実行しますが、既存の定義に対して対象を絞った作業を行うための動詞コマンドもサポートしています。個別の要望があっても、ディスカバリーを最初からやり直す必要はありません。
| コマンド | 内容 | 参照 |
|---|---|---|
sketch [word] | 最短ルートです。 1〜2語から、該当するスターターを選んで内容を埋め、Workbench Read → 仕様書へ進み、開始点として明記したうえで、すぐに finesse-ui に引き継ぎます。「先给我看看效果」の場合に使います | starters.md, handoff.md |
discover [hints] | ゼロから始める全フローです。ルーティングに関する質問を1つ → V0 → ダイヤル → 構造 → 5つのパート → 仕様書 | すべて |
define [domain] | ドメインがすでに決まっています。探索を省き、すべてのゲートは維持します | grammar.md, hook-engineering.md, system-domain.md |
modules / channels [target] | レールのみを再構成します。タイプ構成ルールを適用し、統合または削除して、数を調整します | grammar.md, system-domain.md |
hook [target] | トップラインを書き直し、そのフィールドを再バインドします。単独で行う修正として最も一般的です | hook-engineering.md |
data [target] | システムドメイン。 entities を導出または修正します。フィールド、書き込み元、関係を扱います。フックに必要な数値を生成するものがない場合に実行します | system-domain.md |
pages [target] | システムドメイン。 モジュールをL1/L2/L3のツリーに展開します。仕様書にモジュール名はあるものの、ビルダーが作業を始められない場合に実行します | system-domain.md |
monetize [target] | すでに安定したモジュール構成の中から収益化の糸口を探します | monetization.md |
audit [target] | 読み取り専用のヘルスチェックです。構造の適合性・データの最低要件・そのドメインのブラックリストを確認します。変更は一切行いません | day-two.md |
narrow [target] | モジュールや入力が多すぎる場合に、骨格だけに絞ります | grammar.md, day-two.md |
widen [target] | 内容が薄くて使い続けられない場合に、表面ではなく深さを加えます | workbench-types.md |
handoff [target] | .workbench/spec.md を作成し、finesse-ui に引き継ぎます | handoff.md |
ルーティングのルール
- 最初の単語がコマンドと一致する場合 → その参照資料を読み込み、その作業だけを実行します。該当しないフェーズは省略します。
- コマンド名は指定されていなくても、意図がコマンドに対応する場合 — 「频道太多了」/「模块太多」 →
narrow;「每天打开没啥可看的」 →hook(モジュールが原因であることはほとんどありません);「这些数据从哪来」/「表里字段是啥」 →data;「每个模块里面到底有什么页面」 →pages;「这个能赚钱吗」 →monetize;「有人会用吗」 →audit;「太单薄了」 →widen。2つのコマンドが当てはまる場合は、1度だけ質問します。 - 引数のない呼び出し —
/finesse-brief、/workbench、または後に何も続かない「帮我想个工作台」 → ドアD:**1つのルーティング質問(§0.D1)**を行います。根拠を尋ねる質問ではなく、このコマンド一覧も参照しません。呼び出し時の語句によって動作は変わりません。変わるのは引数だけです。 - ドメインは指定されているが、コマンドが指定されていない場合 → まずドメインテストで進むドアを決め、次に長さで深さを決めます。パーソナル+1〜2語 → ドアQ(このターンで提示します)。パーソナル+具体的なコンテキスト → ドアN。システム → ドアS(2つ質問してから提示します)。QとNで迷った場合はQを選びます。間違ったものでも早く見せるほうが、時間をかけて質問するよりよいからです。
auditは読み取り専用です。 結果を報告しますが、仕様書は編集しません。- finesse-brief はUIを構築しません。 インターフェースを求められた場合は、仕様書を完成させるか読み込んでから、finesse-ui に引き継ぎます(§8)。finesse-ui がインストールされていない場合は、そのことを伝え、仕様書を引き渡します。仕様書はそれだけで読めるものです。
- 「工作台」の意味は多岐にわたり、このスキルが扱う範囲は以前より広くなっています。 finesse-ui も「工作台」/「后台」で起動します。また、区分はもはやパーソナルかビジネスかではなく、定義かデザインかです。質問は1つだけです。不足しているのは定義ですか、それともデザインですか? モジュール、データモデル、ページツリー、最初の画面が未定義なら → こちらです。すでに定義が固まっていて、インターフェースが必要なら → finesse-uiです。両方が必要な場合(システムワークベンチではよくあるケース)は、このスキルを先に実行し、引き継ぎます(§8)。判断のために役割や人数を尋ねないでください。役割はいまや仕様書のフィールドであり(§0.A)、区分の基準ではありません。
0. 最初の一手
「帮我想个工作台」への AI の回答の多くは、正反対の 2 つの失敗のどちらかに陥ります。モデルがカテゴリーを選び、ユーザーが遠慮してそれを受け入れるか、質問を続けてユーザーが何も見る前に離れてしまうかです。§0.B は前者を避ける方法であり、§0.D–§0.E は後者を避ける方法です。
0.A ドメインテスト — 何よりも先に、黙って実施する
ここで、その後のすべてが分岐します。許される質問の数、フックの形、データモデルの有無、仕様にページツリーがあるかどうかが決まります。
| 個人領域 (personal) | システム領域 (system) | |
|---|---|---|
| 判定基準 | 数えられるものは本人の記録だけ | 「X が全部で N 個ある」と言える — N 個の顧客/注文/Agent/デバイス/学習者/コンテンツ |
| 2 つ目の判定 | 中にあるものはすべて本人が入力する | 一部のデータはシステム、連携機能、または別の人によって書き込まれる |
| 質問の予算 | ゼロ(Door Q/N)または1 つ(Door D) | 最大 2 往復(§0.D2) |
| 構成の軸 | 画面ごとに 1 つの、4~9 個のチャンネル | それぞれに L1/L2/L3 のページツリーを持つ、5~9 個のモジュール |
| フック | 2 秒で読める 1 文 | 結論バー:2~4 個の数値と、実行すべきこと 1 つ |
| その下にあるもの | いくつかのフィールド | entities — 書き込み元とリレーションを持つ、実際のデータモデル |
| 読み手 | 1 人、ときには 2 人(§9) | 1 つまたは複数のロール — 仕様のフィールドであり、対象外とする理由にはなりません |
| 失敗する理由 | 木曜日に誰も開かない | 実際のデータベースに対して表示すると空になる、またはすべてのモジュールが同じテーブルになる |
境界的なケースでも、ページツリーがあるならシステム領域と判断します。 「个人知识库」は個人的に見えますが、registry です。N 件のノートがあり、一覧ページ、詳細ページ、検索機能があるからです。「摆摊工作台」はビジネスのように見えますが、個人領域です。1 人が、ある場面で、自分の記録だけを扱い、ページの階層がないからです。数えるのはオブジェクトと階層であり、ユーザーではありません。
どちらの領域かを本人に尋ねてはいけません。 すでに本人が使った言葉から答えは分かりますし、尋ねると自分のプロダクトを分類させることになります。それはあなたの仕事です。
0.B 振り分けの質問は許可されます。カテゴリーのメニューは禁止です。
似ているように見えますが、正反対です。違いは、選択肢を選ぶことでどれだけ決まるかです。
| 許可 | 禁止 | |
|---|---|---|
| 領域の振り分け(§0.D1) | 仕事 · 学習 · 健康 · 財務 · 顧客・注文・在庫などの業務 · AI/自動化 · データ監視 | — |
| アクションの振り分け(§0.D2、システム領域のみ) | 何かを進める · 今日の数値を見る · 入力/インポート · 承認 · 異常への対応 · 設定・調整 | — |
| カテゴリーメニュー | — | 生理周期 · 筋肉増強 · 睡眠 · 家計簿 / CRM · ERP · EC · 医療 · 教育 · 工場 |
| 選択肢を選ぶと決まるもの | ほとんど何も決まりません — 「健康」には依然として何百ものワークベンチがあり、「承認」で決まるのは最初の画面の最上部に何を置くかだけです | プロダクトそのものです。 「CRM」そのものがワークベンチであり、そこで平均的なものになってしまいます |
| 次にすること | その応答の中で、それをもとに構築する | もう考えるのをやめてしまっている |
| 本人が払う代償 | ひと言 | 本人が求めたもの |
システム領域の 2 つの質問も、提案ではなく振り分けです。 「这个台子主要围着什么转?」はプロダクトを提示するのではなく、ほかのすべての基礎となる名詞を特定します。「每天最常做哪几件事?」は、どのモジュールがprimaryになるかと、結論バーに何を表示するかを決めます。どちらも本人に代わってプロダクトを選ぶものではありません。ワークベンチのカテゴリー一覧は本人に代わって選ぶことになるため、システム領域ではそれを提示したくなりますが、禁止のままです。
その線より下では禁止が適用されます。これは書式ではなく、言葉に対する禁止です(discovery.md §1.A)。本人が領域を挙げたら、本人が挙げていないサブカテゴリーを決して提示しないでください。例としても、反例としても、提示を断る文の中でも、文章の一部としても挙げてはいけません。
0.C 「ワークベンチの読み取り」を出力する — 方向性を示し、意向を尋ねない
中国語で、ユーザーが異議を唱えられる言葉を使って書きます。 構造名(ledger、console)、ダイヤルの数値、タイプラベルは、あなたのための座標です。これらをこのブロックにも、導入文にも、本人が目にするほかの場所にも決して含めてはいけません(§0.H)。
個人領域
我注意到:{the evidence, quoted back — the makeshift tool, the abandoned tracker, the thing he re-googles}
工作台:{name, with the person or object in it}
它的样子:{one sentence a non-technical person can picture}
每天打开,你会看到:{the hook, WITH PLAUSIBLE REAL VALUES FILLED IN — not a template}
你每天要喂它:{seconds + exactly what he types or taps}
第一天还没数据时,它说:{the day-one line}
左边有:{4-9 channel names, comma-separated, plain words}
不对的话,大概是这两个之一:① {most likely objection} ② {second}
例(根拠 = メモ + 使わなくなったフィットネスアプリ):
我注意到:你有个备忘录,每次去健身房前翻一下上次做了多少组,回来再改掉。
之前那个健身 App 你用了十天就删了 —— 每组都要点四下太烦。
工作台:阿力的增肌工作台
它的样子:一个每天早上告诉你今天该练哪块、晚上还差多少蛋白的页面。
每天打开,你会看到:今天推日 · 卧推 4×8(上次 60kg,这次试 62.5)· 蛋白还差 42g
你每天要喂它:大约 20 秒 —— 练完点一下"完成",吃完拍一张照。
第一天还没数据时,它说:先记一次卧推,我就能告诉你下次加多少。
左边有:今日训练、动作库、一日五餐、蛋白计算、力量曲线、体态评估、打卡墙
不对的话,大概是这两个之一:① 你其实不想记饮食,只想记训练
② 你要的是长期体态变化,不是每天该练什么
システムドメイン
同じ仕事でも、形は異なります。彼が拒否すべきものが異なるからです。9つのモジュール名が並ぶものは拒否できませんが、誤った主对象や誤った结论条なら、すぐに拒否できます。
这个台子是围着 {主对象} 转的:{one sentence — what it exists to move forward}
打开首屏最上面一条:{the 结论条, WITH REAL PLAUSIBLE NUMBERS — 2-4 figures + one thing to act on}
这条里的数从哪来:{one clause per figure — 谁/什么写进去的}
还没接数据 / 一个 {主对象} 都没有时,这屏说:{the day-one line}
左边模块:{5-9 names}
第一版先做:{2-3 of them}
不对的话,大概是这两个之一:① {most likely objection} ② {second}
例(Door S、「AI Agent 工作台」、2つの質問の後):
这个台子是围着 Agent 转的:让你不用挨个进后台,就知道哪个 Agent 在跑、
哪个昨晚挂了、这个月烧了多少钱。
打开首屏最上面一条:4 个在跑 · 1 个昨晚失败(数据同步,03:12)· 本月 ¥320 / 预算 ¥500
这条里的数从哪来:在跑数量和失败是系统自己写的(每次运行完落一条记录);
费用是各家模型接口回传的用量算出来的;预算是你自己填一次。
还没接数据 / 一个 Agent 都没有时,这屏说:先建第一个 Agent —— 挑个模型、
写句系统提示词就能跑,跑完这儿就有数了。
左边模块:总览、Agent、运行记录、Workflow、知识库、模型与用量、设置
第一版先做:Agent、运行记录、总览
不对的话,大概是这两个之一:① 你其实不管模型和费用,只管 Workflow 编排
② 这台子是给团队用的,得能看到别人建的 Agent
每天打开,你会看到: / 打开首屏最上面一条:は、セッション全体の要となる行であり、実際の値が入っていなければなりません。 今天是{周期}第{n}天、共 {n} 个客户のようなテンプレートは反証できません。その数値が本当に算出可能なのか判断できないため、彼は承認してしまい、ビルド当日になって、何もそれを生成しないことがわかります。**もっともらしい値を入れると、その文に何が必要かに気づけます。**空欄に具体的な内容を入れられないなら、そのフックはまだ見せられる状態ではありません。
**这条里的数从哪来:は、システムドメインにおける你每天要喂它:にあたります。そして、この2つのうちより重要なのはこちらです。**システムドメインで起きる失敗は、彼が入力しないことではなく、**誰が入力するのかを誰も決めておらず、結局誰も入力しないことだからです。**数値ごとに1つの節を設けます。入力担当者がいない数値は、结论条に入れてはいけません。
**不对的话では、互いに異なる実際の選択肢を2つ挙げる必要があります。**それぞれ、実際に定義を変えることになる選択肢でなければなりません。「有什么想法都可以说」では、何も得られません。
後半:ビルダーに渡せる定義
Readは、10秒で拒否できる場です。その下に、同じメッセージ内で、ビルド可能な定義を続けます。
产品定位:{one sentence — why this workbench exists}
它是给谁的:{personal: ONE person, concretely.
system: the roles, 2-4 max, each with what he comes here to do}
什么时候打开:{the moment — 早上通勤 · 睡前 · 练完那一下 · 上班第一件事 · 交接班时}
首屏从上到下:{the hook line, then what sits under it — 3-5 blocks, in order.
This is the single most useful thing you give the builder
and the thing most often left blank}
模块(左边/底部):
{name} —— {what he can actually DO in it, one clause}
... 4-9 of them
{system domain only ↓}
页面层级:
{module} —— L1 {list/board/overview} → L2 {detail} → L3 {sub-record}
主要数据:
{Entity} —— {fields},{written by whom}
第一版先做:{the 2-3 modules without which it isn't the thing}
以后再说:{the rest, so it's recorded rather than argued about again}
风格:{one visual direction — 极简 · Notion 感 · Linear 感 · 手账感 · 数据看板…
and one line on why it fits}
**「それは誰のためのものか」について。**個人向けなら、**必ず単数にします。**ここに対象セグメントを書き込むと、スコープが膨らみ、誰のためでもないプロダクトになってしまいます。システム向けなら、役割を挙げても最大4つまでです。「销售 · 销售主管 · 管理员」のようにします。定義の時点で4つを超える役割があるなら、彼が説明しているのはワークベンチではなく組織図です。毎日開くのは誰なのかを特定させ、まずその人向けに作りましょう。
**「首屏を上から下まで」について――ビルダーが最も必要としていて、最も得られない情報です。**フックは1行目です。1行目しか指定されていないページでは、その下に同じカードが6つ並ぶことになります。
**「ページ階層」と「主要データ」について――システムドメインでは、例外なく必須です。**モジュール名は画面ではありません。「客户管理」は、テーブルにも、カンバンにも、マップにもなり得ます。L1/L2/L3と、その背後にあるエンティティを定めれば、何を作るべきかが決まります(§8.B)。
**上記の内容はすべて§3と切り離せません。**文書を充実させても、データの最低要件を免れることはできません。むしろ、ゲートを通すのは簡単になります。すでにエンティティを書き出しているので、フックに必要な数値をどれが生成するのか、すぐに確認できるからです。
**その後は停止して待ちます。**成果物は1つ、ターンも1回です。
0.D1 Door D — 両方のドメインをカバーする、ルーティングの質問を1つ
**何かを作る前に回答が必要な質問は、必ず1ラウンドを要します。**Door Dにそのような質問は、ちょうど1つだけあります。
这个台子主要管什么?
工作 · 学习 · 创作 · 健康 · 财务 · 家庭 · 阅读 ·
客户/订单/库存这类业务 · AI 和自动化 · 一堆数据要盯着 · 别的都行
顺便一句,不答也行:这事你现在是拿什么在凑合?备忘录、Excel、飞书表格,
还是好几个后台来回切?答了这版就照你的来,不答我先给个通用的,你再改。
任意の2つ目の質問は、その場しのぎのツールです。そこから得られる証拠の価値は最も高く、質問するのは無料で、明示的にスキップできます。しかも、両方のドメインで機能します(「三个后台来回切」は「一个备忘录」と同じくらい診断に役立ちます)。回答があれば、V0は彼自身のものです。スキップされても、V0は納品できます。
**回答に応じてルーティングします。**個人向けの言葉ならDoor Qに進み、次のターンで断定します。システム向けの言葉ならDoor Sに進み、§0.D2を尋ねます。任意の回答がないことを理由に、ドラフトを保留してはいけません。
0.D2 Door S — 2つの質問のラウンド。聞くのはこれで終わりです
プロトコルの全文は references/system-domain.md §1 にあります。予算は 2メッセージ、1メッセージで済むこともよくあります。システムのワークベンチは、「宠物を飼う」のようには本当に推測できないからです。同じ「CRM」という言葉でも、個人コンサルタントの連絡先ページと40人規模の営業チームでは、別のプロダクトになります。
1通目 — 2つの質問を1メッセージで:
两个问题就够了:
1. 这个台子主要围着什么转?(客户 · 订单 · 项目 · 设备 · Agent · 内容 · 学员 · 别的)
——就是那种你会说「一共有多少个」的东西。
2. 平时谁在用?就你自己 · 一个小组几个人 · 好几种岗位(比如销售和主管看的不一样)
2通目 — 最初の画面を決める1つの質問:
最后一个:每天在上面最常做的是哪两三件?
推进某个东西往下一步 · 看今天的数 · 录入或导入数据 · 审批 ·
处理异常和告警 · 配置调参 · 和 AI 对话
その後、仕様全体を提示します。3ラウンド目はありません。
これを、置き換えるはずの面接のようなやり取りにしないためのルールは3つです。
- すでにわかっていることは、決して聞き直しません。 「CRMを作りたい。営業が10人いる」と言われたら、主な対象(顧客)と利用者(小さなチーム)がわかります。残るのは質問3だけです。1行で、それだけを聞きます。 相手がたった今伝えたことを聞き直すのは、こちらがフォームのように見える最も早い方法です。
- 可能ならまとめて聞きます。 3つのうち2つの答えが得られているなら、残りの質問を1つのメッセージにまとめ、次のターンで提示します。
- 4つ目の質問は決してしません。 その他のこと — モバイル版が必要か・エクスポートが必要か・権限をどう分けるか — は、相手が見ている仕様への修正です。ここで聞けば3語で答えられるところを、質問ラウンドにしてしまうことになります(§0.E)。
0.E まず提示し、その後は何度でも修正する — すべてのドアの根底にある原則
十分な情報がそろった時点で、全体を作って提示します。その後は質問に戻らず、修正だけを行います。
入力が短くても、要件が乏しいとは限りません。短い入力はごく普通です。 「宠物を飼う」という言葉には、ほぼ誰にとっても共通する構造、タイミング、フックの形、フィールドのセットが含まれています。異なる点(猫か犬か、珍しいペットか)は入力欄で補えるのであって、相手に質問する理由にはなりません。システム領域でも、同じことが一段上のレベルで当てはまります。 「AI Agent 工作台」には、ほぼ誰にとっても共通する構造(console)、対象(Agent)、モジュールのセット(概要 · Agent · 実行履歴 · Workflow · 使用量)、エンティティの基本構成(Agent、Run、Tool)が含まれています。§0.D2 の2つの質問は、本当に変わる部分を埋めるためのものです — CRMとは何かを知るためではありません。
スターターライブラリがあることは、相手には決して見せません。自分に合うものがないと伝えることも含みます(§0.H)。一覧を見せると、§0.B が禁じるカテゴリメニューに逆戻りします。該当するものがないと告げるのはさらに悪く、相手はワークベンチを見て反応する代わりに、キーワードを推測することになります。
これがうまくいく理由: 人は何もないところからワークベンチを仕様化できませんが、目の前にあるものなら15秒で10個の問題を見つけられます。反論を出すのは簡単ですが、聞き出すのは大変です。 「いや、モデルの費用は管理しない」は具体的で、自発的で、明確です。何も反応するものがない状態で聞かれた質問に、礼儀正しく3回答えるより、はるかに多くの情報が得られます。
以降の各ターンでは、質問に答えるだけではなく、定義全体を修正します。 「実は自分だけが見るものだから、上司に提出する必要はない」と言われたら、「わかりました」とだけ返してはいけません。日報モジュールを取り除き、フックを書き換えた定義を再提示し、どこを変更したかを1行で伝えます。相手には常に、改善されていく1つの成果物だけを見せるべきです。
これでデータフロアの穴が再び開かない理由: どのスターターもカテゴリの基本構成も、フィールドが書き手に割り当てられ、初日のラインも記述された状態で提供されます。高速レーンが速いのは、基本構成が事前に解決済みだからであり、§3 を省略したからではありません。速さは答えを用意しておくことで生まれます。基準を下げることで生まれるのではありません。
高速レーンで増える義務: 相手が実際に言ったことを使って、少なくとも1つ変更します。相手の発言を反映せずにそのまま提供された基本構成は品類平均款です — つまり、相手がダウンロードすれば手に入ったものそのものです。
0.F sketch — 読むより見たい場合
「先に仕上がりを見せて」・「直接作って見せて」・「まずは形にしてくれない?」。文字どおりに受け取ってください。多くの人は仕様を評価できなくても、画面ならすぐに評価できます。
進め方:骨組み → 内容を埋める → 仕様を作成(迅速に) → そのまま finesse-ui に渡す → 出発点であることを明記する。
先给你看个样子 —— 这是起点,不是定论。看到实物你大概会立刻发现哪儿不对,
那时候说的比现在猜的准。
{hand off to finesse-ui with the spec}
誠実さを保つための3つのルール:
- 毎回、出発点であることを明記します。 レンダリングされたページは、実際に完成しているかどうかにかかわらず、完成したように見えます。
- ゲートは引き続き実施します。 フィールドの紐付け、初日の行の記述、モジュール構成の適法性を確認します。
sketchが省略するのは対話であり、§3ではありません。 - 最初の異議が、本当の要件です。 動詞に沿って振り分けます。「每天没啥可看的」 →
hook;「太多了」 →narrow;「不像我们的业务」 → パーソナライズの要件を満たせていません。
システムドメインでの
sketchでは、2つの質問が引き続き必要です。 推測した主オブジェクトが違えば、誤った対象についてのページができてしまいます。それは修正できる出発点ではなく、捨てるしかないページです。2つ質問してから、そのまま進めてください。
0.F2 実際の質問方法 — あらゆるホストでの進め方
このスキルは Claude Code、Cursor、Trae、CodeBuddy、Copilot、元宝、豆包、およびウェブアシスタントで動作します。構造化された質問ツールを備えているものは一部だけで、§0.D1/§0.D2の質問は選択式になっています。そのため、次の点を明確にしておく必要があります。
- 構造化された質問ツール(
AskUserQuestionまたは同等のツール)がある場合は、 振り分けの質問とシステムドメインの質問で使用します。このメソッド全体で、そのツールを使うのはこの2か所だけです。 - ない場合は、まったく同じ質問をプレーンテキストで尋ねます。選択肢をインラインで記載し、§0.D1/§0.D2の表記どおりにします。ツールがないからといって、質問を自由回答式(「どんな作業画面を作りたいですか?」)にしてはいけません。選択肢があるからこそ、一言で答えられるのです。
- メッセージは1つだけ送り、その後は停止して返答を待ちます。 質問した後、推測した回答をもとにV0の作成を続けてはいけません。今回のターンで質問した内容への回答として、ディスク上のファイル、以前のセッション、自分自身の推測を決して扱わないでください。
- それ以外の場面では、構造化された質問ツールを決して使わないでください。 「これで合っていますか?」にも、仕様の確認にも、引き継ぎの提案にも使いません。V0以降はすべて、相手が見ている成果物の修正です。それを投票形式にすることは、§0.Eで防ごうとしているインタビューそのものです。
0.G 相手が行動に移せる言葉で伝える
structure=console、CADENCE=daily、Record 频道、data floor、L2 は内部用語です。ユーザー向けの文章に用語を初めて出すときは、必ず一節の平易な説明を添えます。その後は説明なしで使うか、できれば用語自体を使わないでください。 どんな語彙で考えてもかまいませんが、相手には相手の語彙で伝えてください。
唯一の例外は仕様ファイルそのものです。これは実装者向けに書かれており、entities、pages、L1/L2/L3 が重要です。それでも、## 给实现方 ではこれらを説明します(§8)。
0.H 手法について語らない
§0.G は 言葉 を規定します。ここでは 文全体 を規定します。こちらのほうがよく破られます。素材そのものが実に興味深く、コンテキストにある内容をそのまま渡してしまうのがいちばん簡単だからです。
ユーザーが読む内容は、すべてユーザーのワークベンチに関するものにしてください。どのようにしてそれを作り上げたかについては、何も読ませてはいけません。
| 禁止事項 | 漏れてしまう理由 | 代わりに |
|---|---|---|
| スターターライブラリへの言及。否定形であっても一切禁止 — 「没有现成的『工作日』骨架,我给你组合一个」 | リストを否定しても、そのリストの存在は伝わります。会話がキーワード当てになります | そのまま組み立てて見せてください。組み立てた骨格も同じ条件を満たします |
| ユーザー向けの文章における、構造名、ダイヤル名、タイプ名 の使用 — 「(结构:台账为主 + 复盘为辅)」·「这天然就是个『知识频道』」 | §0.C の禁止対象は、コードフェンスの中だけではなく、読者 です | 「主要是攒记录,顺带每周回看一次」 |
| このスキルのルールの説明 — 「录入 30 秒,回报是一份周报,这样才活得过第二周」·「菜单只会让你随手点第一行」 | これは §1.B と §0.B を、それらが守ろうとしている相手に向かって読み上げているだけです。有能な講義のように聞こえますが、実行につながるものは何もありません | ルールは黙って適用してください。説明が必要なら、相手にとっての意味で説明します。「记多了你一周就烦了,所以我只要一句话」 |
| ドメインの分岐を告げること — 「这属于系统型工作台,所以我要多问两个问题」 | §0.A は、あなたが行う分類です。それを口にすると、相手は回答する代わりに分類体系を監査することになります | そのまま二つの質問をしてください。「两个问题就够了」は相手の時間についての約束なので、問題ありません |
例外は二つだけ。どちらも限定的です。 相手が判断すべき 結果 を伝えること — 「录入我压在你崩掉的那个阈值以下」 — これは相手の一週間についてであり、あなたの手法についてではありません。また、sketch の出力は、根拠ではなくステータスとして、出発点であると示せます。
判定方法: その一文を削除してください。ワークベンチの定義が不十分になりますか? いいえ → それは相手ではなく、あなたのための文です。
1. 3 つのダイヤル
Workbench Read からこれらを明示的に設定してください。以降のすべての判断に影響します。
| ダイヤル | 1–3 | 4–6 | 7–10 |
|---|---|---|---|
| CADENCE — 開く価値が生まれる頻度 | 週次またはイベント駆動(报税、体检、月结) | 週に数回 | 毎日、決まった時間 |
| INPUT — 毎日、人が入力しなければならない内容 | ワンタップ、または何も入力しない(別の場所から読み取る) | 数値と選択肢、約20秒 | 複数項目の記録、写真、フォーム、約2分以上 |
| DEPTH — リマインダーを超えて得られるもの | アラームに設定できるプロンプト | 算出された状態と次のステップ | 自分では生み出せない、蓄積された洞察 |
1.A ダイヤルの推定
- 身体/周期のドメイン(经期、睡眠、血圧)→ CADENCE 8–10、INPUT 2–4。身体がリズムを決めるため、入力の負担は最小限にします。
- トレーニング/食事/学習 → CADENCE 8–10、INPUT 5–7、DEPTH 7 以上。入力負担が大きくても許容できるのは、成果が向上していくこと自体 が目的だからです。ただし、1.B を確認してください。
- ケアのドメイン(ペット、赤ちゃん、植物)→ INPUT 4–6。入力するのは多くの場合、他者の 状態であり、自分自身の状態より記録しやすいものです。
- フィードのドメイン(财经、行业情报)→ INPUT 1–2、DEPTH 5–7。ユーザーは何も入力しません。価値は情報の選定と翻訳から生まれます。これは約束としてより難しくなるのであって、簡単になるわけではありません。
operation/pipeline(摆摊、小店、CRM、工单、订单) → INPUT 6–8 で、妥協できません。金額とステータスの変更は入力しなければならないため、DEPTH の基準もそれに応じて非常に厳しくなります。console/monitor(Agent 台、工厂看板、运维、BI) → INPUT 1–3。これは負担軽減ではなく、落とし穴です。 人間が入力する内容はほとんどないため、ワークベンチ全体がwrites: system|integrationに依存します。連携がまだ存在しない場合、INPUT は低いのではなく 未定義 であり、ページは永久に空のままです。システム系ドメインにおける INPUT の低さは、負担をなくすのではなく、§3 に移すだけです。registry(知识库、商品库、档案) → 最初は INPUT 5–7(誰かがデータを登録する必要があります)、その後は 2–3。コールドスタートが最大の問題です。 空のレジストリを、もう一度開く理由はありません。
1.B バランスのルール(必須)
INPUT は DEPTH を厳密に下回らなければなりません。
INPUT ≥ DEPTHなら、作業台はすでに機能していません。コストのかからない定義時点で、今すぐ修正してください。
放置されたトラッカーは、どれもこの不等式に当てはまります。ユーザーは毎日負担を強いられ、その見返りに、今入力したばかりの内容が表示されるだけです。これは、プロダクトの服を着たデータ入力作業です。**システム領域では、これは組織的な形を取ります。**誰もが入力を義務づけられているのに誰も見ないバックオフィスで、レポートはこの仕様に含まれていない誰かに送られます。不等式は同じです。マネージャーが入力を強制できても解決にはなりません。放棄の理由が「誰も開かない」から「入力データがでたらめ」に変わるだけです。
有効な修正方法は、優先順に次の3つです。
- **INPUT を減らします。**尋ねる代わりに導出する(曜日 → トレーニング日;订单状态 → 从支付回调推出来)、入力を求める代わりにデフォルト値を設定する、手入力の代わりにインポートする、フォームではなく、ワンタップから推測する。
- **DEPTH を高めます。**本人には確実に計算できないものを返します。トレンド、本人の過去との比較、ランキング、予測、専門用語を意思決定に役立つ形にしたものなどです。**システム領域で最も価値の高い DEPTH は、ほぼいつも「哪些该管了」です。**1週間動きのない7件の商談や、故障に向かっている3台のデバイスなどであり、別の合計値ではありません。
- **モジュールを削除します。**対価を返せない入力を求めるモジュールは、存在すべきではありません。多くの人が避ける修正ですが、これが正しいこともよくあります。
UI 作業との非対称性に注意してください。finesse-ui では、野心的すぎるダイヤルは見栄えの悪いページを生みます。ここでは、木曜日に誰も開かないプロダクトが生まれます。そして、それが起きるのを目にすることはありません。
2. 5つの要素(この順番で構築する)
構築ルールの全文は references/grammar.md を参照してください。この順序は、単なるスタイル上の問題ではありません。
| # | 要素 | 答える問い | 構築順 |
|---|---|---|---|
| 1 | アイデンティティ — 名前 + 誰向けか(+ subject、システム領域) | 这是谁的台子?围着什么转? | 最初 |
| 2 | フック — 開いたときに表示される文/结论条 | 打开它跟我说什么? | 2番目 — モジュールより先 |
| 3 | データの土台 — その文を支えるフィールドと記録者 | 这句话凭什么成立? | 3番目。ここがゲートになります(§3) |
| 4 | モジュール — ナビゲーション(+ pages と entities、システム領域) | 我还能在这儿干什么? | 4番目 |
| 5 | 収益化の接点 — 収益が生まれる場所 | 它靠什么活? | 最後。すでに存在するモジュールから |
**順序は、どの要素よりも重要です。**モジュール一覧から始めると、機能一覧を作ってから、その上に載せるフックを逆算することになります。モジュールは楽しい要素なので、そうしたくなるのが自然です。そのフックは、真実を伝えるためではなくナビゲーション全体を覆うために書かれるので、ありきたりなものになります。最初に、開いたときに目にする一文を書いてください。その一文が機能し続けるために必要なものが、ナビゲーションです。
アイデンティティの一文は飾りではなく、土台となるものです。「小暖的姨妈工作台」は「经期管理系统」より優れています。スコープが定まるからです。小暖には、体が1つ、生理周期が1つ、状況を伝える相手が1人います。システム領域でこれに相当するのが subject です。「围着客户转」と「围着订单转」では、まったく異なる CRM が生まれます。前者は顧客との関係履歴、後者は受注処理のキューです。subject を明示しない仕様では、どちらも適切に作れません。名詞を定めれば、モジュールはおのずと導き出されます(system-domain.md §2)。
3. データの最低ライン(このスキルが存在する理由となる基準)
プロトコル全体は references/hook-engineering.md を参照してください。これは、どの入口でも、どちらのドメインでも、どの構造でも、決して省略しない唯一のチェックです。
すべてのフック節と、「今天的」何かを示すとするすべてのモジュールについて、次の5つすべてに答えてください。
| 質問 | 該当すると不合格 | |
|---|---|---|
| 1 | どのフィールドを読み取りますか? | その文に必要なデータが、誰にも定義されていない |
| 2 | 誰が、または何がそのフィールドに書き込みますか? | §3.C を参照してください。「ユーザーが入力する」は、システムドメインでは未定義よりも間違った答えであることが多いです |
| 3 | いつ書き込まれますか? | 誰かの一日の中に、書き込むタイミングが存在しない |
| 4 | 初日、空の状態では何が表示されますか? | 空欄、--、行数ゼロのテーブル、または嘘 |
| 5 | 記録をしなかった日や、ソースが切断された場合はどうなりますか? | 古いデータを最新であるかのように、何の表示もなく示してしまう |
3.A フォーチュンクッキーのテスト
記録もジョブの実行もなかった日に、40日目に表示されるフックを読んでください。1日目と同じ表示のままなら、それはフックではありません。ページの上部近くにたまたま配置された飾りです。
今天是黄体期第 3 天 · 今日 3 件小事 ← needs: cycle start date (user, once a month)
day-one: 先记一下上次月经开始那天
今天推日 6 组 · 蛋白缺口 42g ← needs: split schedule (derived from weekday — free)
+ today's intake (user, after each meal — expensive)
12 个商机待跟进 · 3 个超 7 天没动 ← needs: opportunity.stage + last_activity_at
writes: 销售改阶段时 / 系统在写跟进记录时自动落
day-one: 还没有商机 —— 导一份客户名单,或者先建一个
4 个在跑 · 1 个昨晚失败 · 本月 ¥320 ← needs: run.status (system, 每次运行落一条)
+ usage (integration, 模型接口回传)
day-one: 先建第一个 Agent,跑完这儿就有数了
今天也要加油哦 ✨ ← needs: nothing. Therefore says nothing. Banned.
共 1,284 个客户 · 系统运行正常 ← a constant and a tautology. Also banned.
変数を含まないフックは全面的に禁止です。 このカテゴリで最もよくある失敗であり、定義時には見えません。スライド上では問題なく読めてしまうためです。システムドメインには、合計値だけで作ったフックという独自の問題があります。「合計 1,284 人の顧客・今月の新規 32 件」は、技術的には変化していますが、次に何をすべきかは何も伝えません。结论条には、今日の対応が必要な何かを指し示す節が少なくとも1つ含まれていなければなりません— 対応待ち・期限超過・失敗・アラート・在庫切れ・レビュー待ち — さもなければ、それは統計の帯であってフックではありません。
3.B ユーザーが入力してくれないフィールドが必要な場合
次の4つの方法を、この順番で試してください。
- 導出する(曜日 → 推日/拉日;試験までの日数は1つの日付から算出;注文ステータスは決済コールバックから取得;期限超過は
last_activity_at+ 現在時刻から算出)。 - 毎日ではなく、一度だけ尋ねる(周期の開始日、ペットの誕生日、試験日、月間目標、アラートのしきい値)。
- 毎日の入力を、妥当なデフォルト値を設定したワンタップにする(「昨日と同じ」;カンバンカードを1列移動する)。
- 利用可能なデータで支えられるフックに変更する。 誠実に変更することは成功であり、妥協ではありません — 小さくても真実の文のほうが、大きくても偽りの文より優れています。
3.C 4つの書き込み元 — システムドメインで間違いが起きる理由
個人用ワークベンチの書き込み元は、基本的に1つです。本人です。システム用ワークベンチには4つあり、最初のものだけを想定すると、見栄えはよいのに何も表示されないコンソールができあがります。
| 書き込み元 | 意味 | コスト | 落とし穴 |
|---|---|---|---|
user | 人が入力またはクリックする | 仕様の中で最もコストが高いもの | モジュールごとに3つのフィールドを user に割り当てると、いつの間にかフルタイムのデータ入力業務が生まれます。数えてください。 |
system | ワークベンチが、すでに発生しているアクションの副作用として書き込む(実行が完了する → Run 行;ステージをドラッグする → last_activity_at) | 無料 | まず選ぶべきなのはこちらです。 良いシステム用フックの多くは、system が書き込むフィールドを読み取ります。 |
integration | 別のシステムがデータを提供する(決済コールバック、モデルの使用量、デバイスからの報告、ERP 同期、Excel のインポート) | そのインテグレーションが実際に構築されている場合に限り、フィールドが存在します | システム仕様で最もよくある嘘は、「データは ERP から来ます」としながら、ERP も API も計画もないことです。依存関係として明記するか、その数値をフックに含めないでください。 |
derived | 他のフィールドから読み取り時に計算する(期限超過 = 現在時刻 − last_activity_at > 7日;不足 = 目標 − 実績) | 無料 | 入力が本物である範囲でのみ本物です。未構築のインテグレーションをソースとする導出フィールドは無料ではなく、架空のものです。 |
ルール: フック内のすべてのフィールドについて書き込み元を明記し、integration が書き込むフィールドには、ソースシステムと、それが今日存在するかどうかを明記してください。 3つの未構築インテグレーションに结论条が依存する仕様は、何も表示されないページを出荷するための仕様です。そして、まさにその失敗を防ぐために、このスキルは企業向けの形で作られました。
4. 頻度とタイミング
ワークベンチを開くのは「いつか」ではなく、特定のタイミングです。名前を付けましょう:朝の通勤中 · 寝る前 · トレーニング直後 · 店じまい後 · 出勤して席に着いたらまず最初に · 引き継ぎ時 · 月曜の朝会前 · レポートを作成する日。
そのタイミングによって、フックの時制(朝のフックは命令形です — 今日やるべきこと。夕方のフックは振り返り調です)、無理なく入力できる量(23:50にフォームを入力する人はいません)、そして — プッシュ通知のないウェブページでは — そもそもユーザーが戻ってくるきっかけがあるかどうかが決まります。タイミングを明確にしていないワークベンチには頻度が定まらず、好奇心から二度開かれるだけです。
ここでは、アプリの場合よりもこの点が重要です。 アプリなら、通知でタイミングの弱さを補えます。ブラウザーのタブにあるページにはそれができません。そのタイミングがすでにユーザーの日常に組み込まれていなければ、ワークベンチが新たなきっかけを作ることはありません。すでに行っている何かと結び付けるか、頻度を週次に下げて、それを前提に正直に設計しましょう。
5. 対象ではなく、構造で分類する
全体の資料は references/workbench-types.md にあります。カテゴリから構造への対応表は system-domain.md §6 にあります。
誰のためのものかではなく、それがどう動くかで分類してください。 対象者は無限にいます — 生理周期/筋肉増強/公務員試験対策/ペット飼育/家計簿/屋台販売/CRM/ERP/医療/教育/工場/EC — これらを列挙したものはマーケティング資料であって、手法ではありません。次のものをどう構築するかは何も教えてくれないからです。構造は11種類あり、構造によってフックの公式、最初の画面の形、データモデルの骨格、継続利用の仕組み、そして具体的な失敗の仕方が決まります。まったく異なる業界のワークベンチでも、同じ構造を共有していれば、エンジニアリングも共有できます。
個人領域が主導
| 構造 | 仕組み | フックの形 | 失敗の原因 |
|---|---|---|---|
| cycle | システムが計算できる外部の周期(月経周期、妊娠週数、試験までの日数、ワクチン) | 「今日は第 N 日/段階 → だから今日は…」 | 基準日が入力されず、N が存在しない |
| ledger | 価値が蓄積した推移にある日々の記録(体重、タンパク質、家計簿、単語の暗記) | 「今日の X /目標 Y、差は Z」 | 入力の滞り — 3日間空くと推移が台無しに思えて、ユーザーはやめてしまう |
| state | 蓄積を必要としない今日の状態(睡眠の振り返り、感情、保有資産の状態チェック) | 「昨夜/今日は X だったので、Y」 | 毎日同じ X なので、情報としての価値がなくなる |
| runbook | 今日やるべき手順(トレーニング計画、睡眠の儀式、問題演習) | 「今日やる N 項目」 | 毎日同じリスト — アラームで十分だった |
| care | 別の存在の状態(ペット、赤ちゃん、植物、高齢者) | 「あの子/あの人は第 N 日 · 今日は…」 | 節目しかなく、毎日開く理由がない |
領域横断
| 構造 | 仕組み | フックの形 | 失敗の原因 |
|---|---|---|---|
| feed | 外部情報を選別して翻訳(金融朝刊、業界情報、ツール速報) | 「今日の3つ + ひと言でわかる説明」 | どこでも手に入る一般的なコンテンツで、個別の選別がない |
| operation | 資金と在庫が動く(屋台販売、小規模店舗、仕入れ・販売・在庫管理、ERP、EC バックエンド) | 「今日の売上 X · 在庫アラート Y · 今日の提案 Z」 | 記帳がノートより手間、または在庫数が正確でない |
システム領域が主導
| 構造 | 仕組み | フックの形 | 失敗の原因 |
|---|---|---|---|
| pipeline | 定められた段階を進む対象(CRM の商談、注文、作業指示、プロジェクトタスク、コンテンツ審査、承認) | 「進行待ち N 件 · K 日以上停滞 M 件 · 今日はまずこの項目を確認」 | 誰もカードを進めず、すべての対象がステージ1に永久に留まり、ボードが実態を反映しなくなる |
| registry | 検索可能な対象のカタログ。CRUD + 詳細(顧客記録、商品ライブラリ、ナレッジベース、Skill マーケット、受講者、診療記録) | 「N 件追加 · 重要情報が不足している項目 M 件 · 最近更新された項目」 | 空の状態で始まり、毎日開く理由がなく、検索経由でしか訪れない場所になる |
| console | 起動、停止、介入ができる稼働中のものの群(Agent、Workflow、デバイス、サービス、スケジュールタスク) | 「稼働中 N 件 · 失敗 M 件 · 消費量 X」 | 興味を引く失敗が何も起きず、誰も読まない緑一色の画面になる |
| monitor | 異常を検出でき、詳細にドリルダウンできるよう集約された指標(BI ダッシュボード、工場の大型ディスプレイ、運用監視、保有資産) | 「今日の X /目標 Y · 異常は N 箇所 → クリックして対象を確認」 | 数値は表示されるが異常がなく、単なる壁紙になる。またはドリルダウンできず、数値を見ても疑問に答えられない |
実際のワークベンチの多くは、主構造と副構造を持ちます。 ペット飼育 = care + ledger。筋肉増強 = ledger + runbook。CRM = pipeline + registry。AI Agent 台 = console + registry。スマート工場 = monitor + console。EC バックエンド = operation + pipeline。主構造がフックと最初の画面を担い、副構造がモジュールを1つか2つ提供します。3つの構造を掲げるワークベンチは、たいてい3つのワークベンチです — そのことを伝え、どれかを選んでもらいましょう(discovery.md §5)。
この表から得られる、領域横断で特に有用な2つの見解: 個人用ナレッジベースと企業向け Skill マーケットは同じ構造(
registry)であり、同じように行き詰まります — 初日から空で、再び訪れる理由がありません。また、スマート工場の大型ディスプレイと保有資産の状態チェックページはどちらもmonitorなので、合計値ではなく異常を表面化できるかどうかが成否を左右します。構造で分類することで、こうしたことがわかります。
6. ブラックリスト — 自分の領域に対応するものを確認する
仕様を書く前に、references/day-two.md を確認してください。
6.A 個人向け — 2日目に現れる問題のリスト
- フォーチュンクッキーのフック — 変数がない、または何も生成しない変数です(§3)。最も多い失敗原因です。
- 百科事典のレール — チャンネルの3分の1以上がKnowledgeタイプです。それは百科事典であり、毎日開く人はいません。
- 入力負債 —
INPUT ≥ DEPTH(§1.B)、または毎日の記録をそれぞれ求める独立したチャンネルが3つあります。 - Reviewチャンネルがない — 「你已经坚持 14 天」と表示されることがありません。戻ってくる瞬間のない蓄積は、ただの雑用です。
- 偽物のToday — 「今日 X」チャンネルの内容が毎日同じです。
- 空白のコールドスタート — 1日目が
--なので、2日目にたどり着けません。 - チャンネルが10個以上 — 頭の中で把握できないレールは、読まなくなるメニューになります。
- 後付けの収益化 — どのチャンネルとも関係のないショップタブや、つらいときに開いたチャンネルで商品を売り込むことです。
- 実際の一日の中に存在しない瞬間。
- ユーザーを抱えるシステム — 個人向けの作業台に役割を付け足した「XX 管理系统」です。(2人の 閲覧者 がいるだけなら、これは該当しません — §9。)
- 監督ツールになってしまった — 対象者が異議を唱えられる
care作業台で、フックが不足を報告し、本人に見せるのではなく本人について記録を残します。
6.B システム向け — 使われないコンソールのリスト
- デモデータの嘘 — 仕様書のフックには
12 个待跟进と表示されますが、仕様書内に12を生成するフィールドがありません。フォーチュンクッキーのシステムドメイン版であり、ここで最も高くつく失敗です(§3.C)。空のデータベースで最初の画面を表示して検出してください。 - 一覧ページの地獄絵図 — すべてのモジュールのL1が、検索ボックスとページネーションのある同じテーブルです。9つのモジュールに、同じ画面が9つ。どこにも 結論 を示す画面がありません。修正方法:主モジュールのL1はテーブルではなく、ボード、曲線、またはトリアージリストにします — そして结论条は必須です。
- 空のバックオフィス — シードデータも、インポート手段も、最初のオブジェクトを作成するフローもありません。
registryとpipelineはどちらもここで行き詰まります。すべてのシステム仕様書で、cold_start.day_1に具体的な最初のアクションを記載してください(名单をインポートする · 最初のAgentを作成する · 顧客を1人登録する)。空の状態の説明ではいけません。 - 名詞だけのモジュール — 「客户管理」「订单管理」「系统管理」。名詞に管理を付けても機能にはなりません。意思決定が欠けているだけです。各モジュールの
doesには、誰かが実行する動詞を含めてください。 - 権限の幻覚 — 仕様書に3つの役割がありますが、すべての役割でまったく同じ画面が表示されます。表示内容や操作内容に違いがあるなら、モジュールごとに明記してください。そうでなければ、役割は1つだけだと明記してください。
- 未構築の連携 — フックが「ERP」「支付系统」「设备上报」からのデータに依存していますが、APIも担当者も日程もありません。仕様書に依存関係として明記するか、フックから数値を削除してください(§3.C)。
- 孤立したモジュール —
subjectと関係のないモジュールです。客户を中心に構築したCRMに「公司公告」モジュールを入れるのは、他社の製品です。削除するか、分岐させてください。 - L3に何もない3階層のページツリー — 対称性のためだけに深さを設けています。本物のサブレコードがないモジュールはL2で止めてください。それが正解です。
- 組織図のような役割 — 定義時点で役割が4つを超えています。作業台ではなく、会社を説明している状態です。毎日開く人を1人決め、その人向けにまず構築してください。
- すべてが
primary— 重要度が同じ9つのモジュールは、何が重要かを決めていないことが視覚的に表れたものです。
7. 収益の接点
全文は references/monetization.md をご覧ください。どこでも当てはまるルールは2つです。
- 収益の接点は既存のモジュールから生まれるものであり、そうでなければ存在しません。 暖宫贴は 疼痛急救 に属します。そのモジュールはすでに痛みを和らげることを目的としているからです。単独の 商城 タブは広告です。接点を結び付けるモジュールを特定できないなら、まだ接点はありません――それで問題ありません。そのように伝えてください。
- ユーザーが不安を感じているときや痛みを抱えているときに開いたモジュールから、決して収益を得てはいけません。 生理痛のときの 疼痛急救、午前2時の 宠物医院、つらい日の 情绪。コンバージョン率は最も高くなりますが、害も最大です。その害は、ワークベンチ全体が頼りにしている日々の習慣に及びます。
システム領域では、
seam: noneが通常正しい回答であり、無理に記述するのは不備です。 CRMの収益モデルは、誰かがCRMの利用料を支払うことです。工場のダッシュボードの収益モデルは、ダウンタイムを防ぐことです。社内ツールにページ内の 增值服务 をでっち上げると、貼り付けたショップタブのエンタープライズ版ができあがります。例外は、ワークベンチ自体が外部ユーザー向けの製品である場合です。その場合、接点はプラン(席位 · 用量 · 模块解锁)となり、仕様書のseamに1行で記載します。それでも、必ずモジュールに結び付けてください。
8. 引き継ぎ — 仕様書を書いたら、そこで止める
完全なスキーマは references/handoff.md をご覧ください。定義が確定したら、.workbench/spec.md を作成します。
8.A 両領域
YAMLフロントマターには、purpose、user(または roles)、surface、structure、moment、dials、各節の対象フィールドと記述者を含む hook、cold_start(day_1 / day_2 / day_7 / re_entry)、home — 最初の画面を上から下まで、種類、重み、does を含む channels、mvp/later、visual、seam、excluded、deferred を記載します。続いて人間向けの中国語の文章(対象ユーザー、根拠、ありふれた1日を最初から最後まで、これらのモジュールを選んだ理由、除外したものとその理由)を書き、最後に ## 给实现方 セクション(handoff.md §3.A)を設け、この手法で使う内部用の列挙値を、わかりやすい実装指示に置き換えます。
home と channels[].does があるからこそ、ファイルを読むだけでなく、それを基に実装できます。 hook が最初の1行を定めます。home がなければ、その下に何を置くかを実装者が考えることになり、機能が定義されていない名前だけのモジュールでは、画面全体が推測任せになります。
8.B System ドメインには3つのフィールドが追加され、いずれも必須です
| フィールド | これがないと仕様を実装できない理由 |
|---|---|
subject | すべての中心となる名詞です。顧客を中心とするCRMと、注文を中心とするCRMでは、最初に表示される画面も、モジュールも、エンティティも異なります。この一語から仕様の半分が導き出されます(system-domain.md §2) |
entities | データモデルです。各エンティティのフィールド、各フィールドの書き込み元(§3.C)、エンティティ間の関係を記述します。**フックに含まれる数値を実体のあるものにするフィールドです。**これがないとビルダーはスキーマを独自に作り、そのスキーマでは「結論欄」を生成できません |
channels[].pages | 各モジュールのL1 → L2 → L3ツリーです。各レベルに何を表示し、そこで何ができるかを記述します。**モジュール名は画面ではありません。**これがないとビルダーは同じテーブルを9つ描画してしまいます。これはブラックリスト項目2です(§6.B) |
subject: Agent
roles:
- { name: 开发者, opens_daily: true, does: 建 Agent、看昨晚跑得怎么样、调提示词 }
entities:
- name: Agent
fields: [id, name, status, model, system_prompt, created_at]
written_by: { name: user, status: system, model: user, created_at: system }
relations: [Agent 1-n Run]
channels:
- name: Agent
type: today
weight: primary
does: 建 Agent、启停、改提示词、看每个跑得怎么样
pages:
- { level: L1, shows: Agent 卡片列表 + 状态筛选, actions: [新建, 启停, 复制] }
- { level: L2, shows: 配置 + 最近 10 次运行 + 本月用量, actions: [编辑, 试运行] }
- { level: L3, shows: 单次运行的逐步日志和输入输出, actions: [重跑, 导出] }
毎回、## 実装者向けを記述してください。 finesse-uiは用語を理解しますが、Cursor、v0、通義、人間の外部委託先には通じません。また、デコーダーテーブルはhandoff.mdにあり、仕様には添付されません。これがないと、ビルダーは同じタブを6つと挨拶用の帯を描画し、ファイルにはそれを否定する記述が何もありません。
ファイルシステムを使えない場合は、仕様全体を1つのフェンス付きブロックに出力し、どのビルダーにもコピーできることを1行で伝えてください(handoff.md §1.A)。このスキルを使う人の多くはチャット製品を利用しており、引き継ぎはパスではなく貼り付けです。実際には書き込んでいないファイルを書き込んだと主張してはいけません。
finesse-uiが読み取るマッピング(これはここに記載し、仕様には代わりに§3.Aを記載します):
| 仕様のフィールド | finesse-uiでの扱い |
|---|---|
surface: phone / desktop | h5(スマートフォンのブラウザーで表示するページ) / product(デスクトップのブラウザーで表示するページ)として登録 |
channels[] | ナビゲーション(ボトムバーまたはサイドバー)。数によってシェルの選択が決まります |
channels[].pages | ルートと、シェルが対応すべき階層の深さ |
hook | 他のすべてより上に表示される最初の画面 |
entities | テーブル、フォーム、列、フィルター |
cold_start | 空の状態。finesse-uiは空の状態を実際の画像スロットとして扱います |
structure.primary | 主な表示形式:サイクル → カレンダー · 台帳 → 曲線 · パイプライン → ボード · レジストリ → リスト+詳細 · コンソール → フリートカード · モニター → 数値+ドリルダウン · オペレーション → 数値 |
**仕様の作成がこのスキルの仕事の終わりです。構築は別途、必要かどうかを確認します。**引き継ぎを1行で提案して待ってください。ユーザーは定義をじっくり検討したり、別の場所で使ったり、自分で構築したりするかもしれません。
9. 対象外
finesse-brief が定義するのは、個人用またはシステム用のワークベンチとは何かであり、定義したところで終わります。次の作業は引き継いでください。
- インターフェース → finesse-ui(§8 で定めた引き継ぎ先です)。
- エンジニアリング — ストレージ、同期、認証の実装、モデルの選定、デプロイ、実際にインテグレーションをどう構築するか。仕様ではインテグレーションを依存関係(§3.C)として挙げていますが、その設計は行いません。
- 本格的なマルチテナントの商用プロダクト — 課金、テナント分離、コンプライアンス、SLA、販売プロセス、ロードマップ。ロールは対象ですが、企業のプロダクト戦略は対象外です。 境界は次のとおりです。このスキルは、1つのワークベンチを徹底的に定義します。SaaS ビジネスのプロダクトマネジメントは行いません。
- 医療、金融、法律の内容そのもの。 このスキルが判断するのは、婦人科の啓発、保有資産のチェック、服薬リマインダーのモジュールを作るべきか、また何を表示すべきかです。医療、金融、法律に関する内容を提供することはなく、作り出してもいけません — もっともらしい捏造を含むモジュールは、モジュールがないよりも悪いものです。モジュールに名前を付けたうえで、実際の内容をどこから入手すべきかを明確に伝えてください。
以前は対象外だったものの、現在は対象に含まれるものが2つあります。 複数のロール — 「営業担当は自分の分を、マネージャーはチーム全体を見る」は、現在では拒否の理由ではなく、roles とモジュールごとの差分として扱います。エンタープライズのカテゴリ — CRM、ERP、工場、医療、教育は、pipeline/operation/monitor/registry ワークベンチとして扱い、システムトラックが対応します。対象外なのは、それらを取り巻くビジネスです。
そして、変わらない境界が1つあります。 母親が子どものために作る学習ワークベンチは、2人が見るものであっても個人用です。オーナーは1人、ドメインは1つ、瞬間は1つ、フックは1つで、ページツリーはなく、誰かがタイプとしてログインすることもありません。1つの画面を読む人が2人いるのは、文章作成の問題です — 同じ文章が2人にとって正しく、親切でなければなりません(hook-engineering.md §7)。これはアーキテクチャの問題ではありません。2人目の読み手に自分の意思がある場合(学齢期の子ども、高齢の親など)は、追加のルールを workbench-types.md §6.A に記載しています。