@unson/brainbase-mcp 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/dist/cli.js +6 -3
- package/dist/guided-onboarding.js +46 -39
- package/dist/onboarding.d.ts +4 -1
- package/dist/onboarding.js +25 -15
- package/dist/operationalization.js +9 -6
- package/dist/skills.js +11 -9
- package/dist/tools.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -28,17 +28,19 @@ npm run onboard:start -- --target codex
|
|
|
28
28
|
|
|
29
29
|
`onboard:start`は日本語の初回導入コマンドです。最小ディレクトリだけを作り、本人、プロジェクト、関係者、判断、メール、カレンダー、ドライブ、タスクの事実は、利用者が承認するまで保存しません。通常表示は次の一手だけに絞り、全項目は`--details`で確認できます。
|
|
30
30
|
|
|
31
|
-
公開CLIをインストール済みなら、次の
|
|
31
|
+
公開CLIをインストール済みなら、次の5ステップです。
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
brainbase onboard:start --target codex
|
|
35
35
|
# 表示された onboard:seed を確認して実行
|
|
36
|
-
brainbase onboard:
|
|
36
|
+
brainbase onboard:install --target codex --dry-run
|
|
37
|
+
# 設定を承認・反映し、Codexを再起動
|
|
38
|
+
# 新しいCodexでBrainbaseのget_context/searchを使って実際の依頼を試す
|
|
37
39
|
```
|
|
38
40
|
|
|
39
|
-
リポジトリをclone
|
|
41
|
+
リポジトリをcloneした場合も、`npm run onboard:start -- --target codex`から同じ順序で進めます。
|
|
40
42
|
|
|
41
|
-
利用者がBrainbaseの導入を依頼したら、エージェントはチェックリストを返すだけでなく、この公開CLI
|
|
43
|
+
利用者がBrainbaseの導入を依頼したら、エージェントはチェックリストを返すだけでなく、この公開CLIを実行します。承認された最小文脈を保存し、MCP設定を反映した新しい実エージェントで`get_context`と`search`を使って現実の依頼へ回答します。その実回答を見た本人が「役立った」と判断して初めて初回価値です。`ready: true`、`cli_sample_ready`、CLIの処理時間、合成ペルソナ評価、Skillsやルーティンの生成、`onboard:install --dry-run`だけでは導入完了ではありません。
|
|
42
44
|
|
|
43
45
|
For a Google Workspace / Google Drive / local-notes setup, pass the known answers and let the command surface what still needs approval:
|
|
44
46
|
|
|
@@ -83,21 +85,22 @@ brainbase onboard:seed \
|
|
|
83
85
|
--relationship "Key Partner|collaborator|Context you want AI tools to remember"
|
|
84
86
|
```
|
|
85
87
|
|
|
86
|
-
|
|
88
|
+
Optionally preview the saved context locally. This is not an onboarding completion signal:
|
|
87
89
|
|
|
88
90
|
```bash
|
|
89
91
|
brainbase onboard:demo --scenario "Draft the first note I should send to Key Partner about Current project"
|
|
90
92
|
```
|
|
91
93
|
|
|
92
|
-
`onboard:demo` reads only locally saved, approved facts. It does not call an LLM,
|
|
94
|
+
`onboard:demo` reads only locally saved, approved facts. It does not call an LLM, an agent, or a hosted backend. Its result is only a preview. Continue through MCP installation, restart the selected agent, make a real request using `get_context` and `search`, and ask the user whether that actual answer was useful.
|
|
95
|
+
|
|
96
|
+
After the demo, keep onboarding open: the preview is not the first-value gate. Continue until a real agent uses Brainbase and the human user confirms that the result was useful.
|
|
93
97
|
|
|
94
|
-
After
|
|
98
|
+
After seed, install and verify MCP before asking for the human value judgment:
|
|
95
99
|
|
|
96
100
|
```bash
|
|
97
|
-
brainbase onboard:skills --target codex
|
|
98
|
-
brainbase onboard:routines --target codex --cwd /path/to/brainbase
|
|
99
101
|
brainbase onboard:install --target codex --dry-run
|
|
100
102
|
brainbase doctor
|
|
103
|
+
# restart Codex, use get_context/search for the real request, then ask whether it was useful
|
|
101
104
|
```
|
|
102
105
|
|
|
103
106
|
The recommended order is public skills, `ohayo` / `oyasumi` / `retro` routines registered paused or confirmation-gated, real MCP config merge after approving the dry-run snippet, source allowlist / import / candidate review decisions, then `doctor` plus MCP `get_context` / `search` verification from a fresh agent session.
|
package/dist/cli.js
CHANGED
|
@@ -256,7 +256,8 @@ async function onboardSeed(parsed, io) {
|
|
|
256
256
|
'- 同じ文脈は更新しました。既存の別データは削除していません。',
|
|
257
257
|
'',
|
|
258
258
|
'次に実行:',
|
|
259
|
-
`brainbase onboard:
|
|
259
|
+
`brainbase onboard:install --target codex --dir ${shellArg(dataDir)} --dry-run`,
|
|
260
|
+
'設定を承認・反映してエージェントを再起動した後、実際の依頼でBrainbaseのget_contextとsearchを使います。',
|
|
260
261
|
''
|
|
261
262
|
];
|
|
262
263
|
write(io, summary.join('\n'));
|
|
@@ -934,10 +935,12 @@ function proposedPersonalOs(os, proposed) {
|
|
|
934
935
|
return { ...os, ...proposed };
|
|
935
936
|
}
|
|
936
937
|
function usage() {
|
|
937
|
-
return
|
|
938
|
+
return `初回価値まで(5ステップ):
|
|
938
939
|
1. brainbase onboard:start --target codex
|
|
939
940
|
2. 表示された brainbase onboard:seed を確認して実行
|
|
940
|
-
3. brainbase onboard:
|
|
941
|
+
3. brainbase onboard:install --target codex --dry-run
|
|
942
|
+
4. 設定を承認・反映し、Codexを再起動
|
|
943
|
+
5. 新しいエージェントで実際の依頼を送り、役立ったか本人が判断
|
|
941
944
|
|
|
942
945
|
使い方:
|
|
943
946
|
brainbase-mcp
|
|
@@ -70,6 +70,7 @@ export function buildGuidedFirstRun(input) {
|
|
|
70
70
|
'--dir', input.dataDir,
|
|
71
71
|
'--scenario', firstValueScenario
|
|
72
72
|
]);
|
|
73
|
+
const actualAgentPrompt = `Brainbaseのget_contextとsearchを使い、保存済み文脈を根拠に「${firstValueScenario}」へ回答してください。使った前提と未確認事項を分けてください。`;
|
|
73
74
|
const projectDryRunCommand = project
|
|
74
75
|
? projectCommand(input.dataDir, project.project.name, input.project, project.project.sources, false)
|
|
75
76
|
: undefined;
|
|
@@ -119,44 +120,50 @@ export function buildGuidedFirstRun(input) {
|
|
|
119
120
|
nextCommands: [
|
|
120
121
|
{
|
|
121
122
|
id: 'self-seed',
|
|
122
|
-
title: '
|
|
123
|
+
title: '最初の実利用に必要な最小文脈を正本化する',
|
|
123
124
|
when: '名前、価値観、最初のプロジェクト、関係者文脈を本人が確認した後',
|
|
124
125
|
command: selfSeedCommand
|
|
125
126
|
},
|
|
127
|
+
{
|
|
128
|
+
id: 'install',
|
|
129
|
+
title: `${targetLabel(input.target)} 用のMCP設定を実configへmergeする`,
|
|
130
|
+
when: '最小文脈のseed直後。dry-runを確認し、承認後に実configへ反映する',
|
|
131
|
+
command: operationalization.pending.find((item) => item.id === 'mcp-config')?.command ?? command(['brainbase', 'onboard:install', '--target', input.target, '--dir', input.dataDir, '--dry-run'])
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: 'doctor',
|
|
135
|
+
title: 'doctor と MCP get_context/search で確認する',
|
|
136
|
+
when: 'MCP設定を実configへmergeし、対象エージェントを再起動した後',
|
|
137
|
+
command: operationalization.pending.find((item) => item.id === 'verification')?.command ?? command(['brainbase', 'doctor', '--dir', input.dataDir])
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: 'actual-agent-value',
|
|
141
|
+
title: '実エージェントで現実の依頼を試し、本人が価値を判断する',
|
|
142
|
+
when: 'MCP設定反映後の新しいエージェントセッション',
|
|
143
|
+
command: actualAgentPrompt
|
|
144
|
+
},
|
|
126
145
|
{
|
|
127
146
|
id: 'first-value-demo',
|
|
128
|
-
title: '
|
|
129
|
-
when: '
|
|
147
|
+
title: '必要ならCLI文脈プレビューを見る',
|
|
148
|
+
when: '実接続前に保存文脈から作れるサンプルだけ確認したい時。完了証拠にはしない',
|
|
130
149
|
command: demoCommand
|
|
131
150
|
},
|
|
132
151
|
{
|
|
133
152
|
id: 'skills',
|
|
134
153
|
title: '公開オンボーディングskillsを配置する',
|
|
135
|
-
when: '
|
|
154
|
+
when: '実エージェントの回答を本人が役立つと確認した後',
|
|
136
155
|
command: operationalization.pending.find((item) => item.id === 'public-skills')?.command ?? 'brainbase onboard:skills --target codex'
|
|
137
156
|
},
|
|
138
157
|
{
|
|
139
158
|
id: 'routines',
|
|
140
159
|
title: 'ohayo / oyasumi / retroを確認付きで登録する',
|
|
141
|
-
when: '
|
|
160
|
+
when: '初回価値確認後、継続運用が必要になった時',
|
|
142
161
|
command: operationalization.pending.find((item) => item.id === 'routines')?.command ?? 'brainbase onboard:routines --target codex --cwd <brainbase-checkout>'
|
|
143
162
|
},
|
|
144
|
-
{
|
|
145
|
-
id: 'install',
|
|
146
|
-
title: `${targetLabel(input.target)} 用のMCP設定を実configへmergeする`,
|
|
147
|
-
when: 'first value demoとskills/routines確認後。dry-runをプレビューにして承認後に実configへ反映する',
|
|
148
|
-
command: operationalization.pending.find((item) => item.id === 'mcp-config')?.command ?? command(['brainbase', 'onboard:install', '--target', input.target, '--dir', input.dataDir, '--dry-run'])
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
id: 'doctor',
|
|
152
|
-
title: 'doctor と MCP get_context/search で確認する',
|
|
153
|
-
when: 'MCP設定を実configへmergeし、対象エージェントを再起動した後',
|
|
154
|
-
command: operationalization.pending.find((item) => item.id === 'verification')?.command ?? command(['brainbase', 'doctor', '--dir', input.dataDir])
|
|
155
|
-
},
|
|
156
163
|
...(projectDryRunCommand ? [{
|
|
157
164
|
id: 'project-dry-run',
|
|
158
165
|
title: 'プロジェクト登録内容を確認する',
|
|
159
|
-
when: '
|
|
166
|
+
when: '実エージェントの回答確認後、プロジェクト詳細を追加したい時',
|
|
160
167
|
command: projectDryRunCommand
|
|
161
168
|
}] : []),
|
|
162
169
|
...(projectWriteCommand ? [{
|
|
@@ -168,13 +175,13 @@ export function buildGuidedFirstRun(input) {
|
|
|
168
175
|
{
|
|
169
176
|
id: 'source-diagnosis',
|
|
170
177
|
title: 'メール・カレンダー・ドライブ・タスクの接続準備を診断する',
|
|
171
|
-
when: '
|
|
178
|
+
when: '実エージェントの回答を確認した後、追加文脈が必要だと分かった時',
|
|
172
179
|
command: diagnoseCommand
|
|
173
180
|
},
|
|
174
181
|
{
|
|
175
182
|
id: 'candidates',
|
|
176
183
|
title: '候補ファクトをレビュー用に作る',
|
|
177
|
-
when: '
|
|
184
|
+
when: '実エージェントの回答を確認した後、聞き取り内容をまだ正本化せずレビュー材料にしたい時',
|
|
178
185
|
command: command([
|
|
179
186
|
'brainbase',
|
|
180
187
|
'onboard:candidates',
|
|
@@ -187,16 +194,16 @@ export function buildGuidedFirstRun(input) {
|
|
|
187
194
|
],
|
|
188
195
|
approvalGates: [
|
|
189
196
|
'OAuth token、password、API key、refresh tokenはチャットへ貼らない。',
|
|
190
|
-
'接続診断や候補JSON
|
|
197
|
+
'接続診断や候補JSONを初回オンボーディングの完了扱いにしない。実エージェントの回答と本人の価値判断を先に確認する。',
|
|
191
198
|
'メール、カレンダー、ドライブ、タスクは最初はmetadata-firstで扱う。',
|
|
192
199
|
'Google Driveとローカルファイルは明示されたfolder allowlistだけを見る。',
|
|
193
200
|
'sources/ と candidates/ は二次材料であり、本人承認前にMCPの正本文脈へ入れない。',
|
|
194
201
|
'プロジェクト、関係者、判断基準はdry-run確認後だけ --write または onboard:seed で正本化する。'
|
|
195
202
|
],
|
|
196
203
|
completionCheck: [
|
|
197
|
-
'
|
|
198
|
-
'
|
|
199
|
-
'
|
|
204
|
+
'CLIサンプルは接続前プレビューであり、初回価値の達成証拠にしない。',
|
|
205
|
+
'新しい実エージェントがBrainbase MCPのget_context/searchを使って現実の依頼へ回答する。',
|
|
206
|
+
'実回答を見た本人が役立ったかを判断する。',
|
|
200
207
|
'完了報告には、公開skills、ohayo/oyasumi/retro、MCP実config merge、source allowlist/import/candidate review、MCP get_context/search確認の未完了タスクを必ず出す。',
|
|
201
208
|
`${targetLabel(input.target)} のMCP設定に Brainbase が実登録されている。`,
|
|
202
209
|
'最初のプロジェクトが get_context/search で見える。',
|
|
@@ -212,11 +219,11 @@ export function renderGuidedFirstRun(input, format, details = false) {
|
|
|
212
219
|
if (!details) {
|
|
213
220
|
const next = guide.currentStatus.missing.length > 0
|
|
214
221
|
? guide.nextCommands.find((item) => item.id === 'self-seed')
|
|
215
|
-
: guide.nextCommands.find((item) => item.id === '
|
|
222
|
+
: guide.nextCommands.find((item) => item.id === 'install');
|
|
216
223
|
return [
|
|
217
224
|
'# Brainbase 初回オンボーディング',
|
|
218
225
|
'',
|
|
219
|
-
`- 状態: ${guide.currentStatus.missing.length > 0 ? '最小文脈の保存待ち' : '
|
|
226
|
+
`- 状態: ${guide.currentStatus.missing.length > 0 ? '最小文脈の保存待ち' : '実エージェント接続待ち'}`,
|
|
220
227
|
`- データ: \`${guide.dataDir}\``,
|
|
221
228
|
`- 不足: ${guide.currentStatus.missing.length > 0 ? guide.currentStatus.missing.map(canonicalAreaLabel).join('、') : 'なし'}`,
|
|
222
229
|
'',
|
|
@@ -241,13 +248,13 @@ export function renderGuidedFirstRun(input, format, details = false) {
|
|
|
241
248
|
`- 正本ファクト書き込み: ${guide.initialized.canonicalFactWrites ? 'あり' : 'なし'}`,
|
|
242
249
|
`- 現在の不足: ${guide.currentStatus.missing.length > 0 ? guide.currentStatus.missing.map(canonicalAreaLabel).join('、') : 'なし'}`,
|
|
243
250
|
'',
|
|
244
|
-
'##
|
|
251
|
+
'## 接続後に実エージェントで試すこと',
|
|
245
252
|
guide.firstValueExperience.title,
|
|
246
253
|
'',
|
|
247
254
|
`- 試すプロンプト: 「${guide.firstValueExperience.tryPrompt}」`,
|
|
248
255
|
`- 期待する価値: ${guide.firstValueExperience.expectedValue}`,
|
|
249
256
|
'',
|
|
250
|
-
'###
|
|
257
|
+
'### 回答イメージ(接続前プレビュー)',
|
|
251
258
|
guide.firstValueExperience.sampleResult,
|
|
252
259
|
'',
|
|
253
260
|
'## まだ残っている運用化',
|
|
@@ -266,7 +273,7 @@ export function renderGuidedFirstRun(input, format, details = false) {
|
|
|
266
273
|
...section.questions.map((question) => `- ${question}`)
|
|
267
274
|
]),
|
|
268
275
|
'',
|
|
269
|
-
'##
|
|
276
|
+
'## 追加接続(初回価値確認後の任意ステップ)',
|
|
270
277
|
...guide.sourceReadiness.flatMap((source) => [
|
|
271
278
|
'',
|
|
272
279
|
`### ${source.title}`,
|
|
@@ -300,11 +307,11 @@ function buildJapaneseInterview() {
|
|
|
300
307
|
return [
|
|
301
308
|
{
|
|
302
309
|
id: 'value_target',
|
|
303
|
-
title: '
|
|
310
|
+
title: '本人が価値を判断できる最初の実利用',
|
|
304
311
|
questions: [
|
|
305
312
|
'Codex / Claude Code に毎回説明し直したくない仕事文脈は何ですか?',
|
|
306
313
|
'今日のオンボーディングで「これは便利」と判断できる実リクエストは何ですか?',
|
|
307
|
-
'
|
|
314
|
+
'最初の実回答は仕事前提、関係者、判断基準、プロジェクトのどれを使えれば役立ったと判断できますか?'
|
|
308
315
|
]
|
|
309
316
|
},
|
|
310
317
|
{
|
|
@@ -313,7 +320,7 @@ function buildJapaneseInterview() {
|
|
|
313
320
|
questions: [
|
|
314
321
|
'あなたの名前、呼ばれ方、Codex / Claude Code に覚えてほしい仕事上の前提は何ですか?',
|
|
315
322
|
'判断基準、重視する価値観、避けたい進め方は何ですか?',
|
|
316
|
-
'
|
|
323
|
+
'最初の実利用に必要な関係者は誰で、どういう文脈を覚えておくべきですか?'
|
|
317
324
|
]
|
|
318
325
|
},
|
|
319
326
|
{
|
|
@@ -329,24 +336,24 @@ function buildJapaneseInterview() {
|
|
|
329
336
|
id: 'approval',
|
|
330
337
|
title: '正本化の承認',
|
|
331
338
|
questions: [
|
|
332
|
-
'
|
|
339
|
+
'最初の実利用に必要な本人、仕事、関係性の事実をこのままローカル正本に入れてよいですか?',
|
|
333
340
|
'候補JSONではなく、会話上の要約として承認できますか?',
|
|
334
341
|
'まだ正本化しない事実や除外したい文脈はありますか?'
|
|
335
342
|
]
|
|
336
343
|
},
|
|
337
344
|
{
|
|
338
345
|
id: 'first_value_demo',
|
|
339
|
-
title: '
|
|
346
|
+
title: '実エージェント回答の確認',
|
|
340
347
|
questions: [
|
|
341
|
-
'
|
|
342
|
-
'
|
|
348
|
+
'MCP設定反映と再起動後、実エージェントへ現実の依頼を送り、説明し直しが減ったか確認してください。',
|
|
349
|
+
'実回答が役立たない場合、どの文脈が不足していましたか?'
|
|
343
350
|
]
|
|
344
351
|
},
|
|
345
352
|
{
|
|
346
353
|
id: 'sources',
|
|
347
|
-
title: '
|
|
354
|
+
title: '初回価値確認後のメール・カレンダー・ドライブ・タスク',
|
|
348
355
|
questions: [
|
|
349
|
-
'
|
|
356
|
+
'初回価値確認後に追加文脈が必要なら、メールは Gmail / Google Workspace / Outlook / Apple Mail / その他のどれですか?',
|
|
350
357
|
'カレンダーは Google Calendar / Outlook Calendar / Apple Calendar / その他のどれですか?',
|
|
351
358
|
'ドキュメントは Google Drive / OneDrive / Dropbox / Notion / ローカルフォルダのどこにありますか?',
|
|
352
359
|
'タスク管理は Notion / Todoist / Linear / GitHub Issues / NocoDB / CSV / カレンダーやメモ散在 / なし のどれですか?',
|
|
@@ -381,7 +388,7 @@ function buildFirstValueExperience(projectName, person) {
|
|
|
381
388
|
'背景説明をもう一度求めず、保存した仕事メモを前提に最初の作業メモを出します。'
|
|
382
389
|
].join('\n');
|
|
383
390
|
return {
|
|
384
|
-
title: '
|
|
391
|
+
title: '最小メモを保存して接続したら、実エージェントへこの一問を依頼します。',
|
|
385
392
|
tryPrompt,
|
|
386
393
|
expectedValue,
|
|
387
394
|
sampleResult
|
package/dist/onboarding.d.ts
CHANGED
|
@@ -160,7 +160,10 @@ export interface ValueDemo {
|
|
|
160
160
|
valueExplanation: string;
|
|
161
161
|
operationalization: OperationalizationPlan;
|
|
162
162
|
nextStep: string;
|
|
163
|
-
completionSignal: 'needs_seed' | '
|
|
163
|
+
completionSignal: 'needs_seed' | 'cli_sample_ready';
|
|
164
|
+
onboardingComplete: false;
|
|
165
|
+
humanValueStatus: 'not_observed';
|
|
166
|
+
actualAgentPrompt: string;
|
|
164
167
|
}
|
|
165
168
|
export declare function buildAgentOnboardingProtocol(): AgentOnboardingProtocol;
|
|
166
169
|
export declare function buildValueDemo(input: ValueDemoInput): ValueDemo;
|
package/dist/onboarding.js
CHANGED
|
@@ -41,12 +41,12 @@ export function buildAgentOnboardingProtocol() {
|
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
id: 'first_value_demo',
|
|
44
|
-
title: '
|
|
44
|
+
title: 'CLI preview and actual agent value check',
|
|
45
45
|
questions: [
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
'
|
|
49
|
-
'
|
|
46
|
+
'Optionally run brainbase onboard:demo to preview which saved context should be used.',
|
|
47
|
+
'Install the MCP config after user approval and restart the selected agent.',
|
|
48
|
+
'Send the real request through that agent and require get_context/search evidence.',
|
|
49
|
+
'Ask the user whether the actual answer was useful. A CLI sample or synthetic evaluator is not onboarding completion.'
|
|
50
50
|
]
|
|
51
51
|
},
|
|
52
52
|
{
|
|
@@ -72,7 +72,10 @@ export function buildAgentOnboardingProtocol() {
|
|
|
72
72
|
'brainbase onboard:init',
|
|
73
73
|
'brainbase onboard:seed --name "<name>" --value "<what should not be re-explained>" --project "<current project>" --relationship "<person>|<role>|<context>"',
|
|
74
74
|
'brainbase onboard:projects --name "<project>" --goal "<goal>" --status "<status>" --role "<your role>"',
|
|
75
|
-
'brainbase onboard:
|
|
75
|
+
'brainbase onboard:install --target codex --dry-run',
|
|
76
|
+
'Restart the selected agent, then send the real request and require Brainbase get_context/search.',
|
|
77
|
+
'Ask the user whether the actual answer was useful.',
|
|
78
|
+
'brainbase onboard:demo --scenario "<optional local preview>"',
|
|
76
79
|
'brainbase onboard:skills --target codex',
|
|
77
80
|
'brainbase onboard:routines --target codex --cwd <brainbase-checkout>',
|
|
78
81
|
'brainbase onboard:install --target codex --dry-run',
|
|
@@ -82,10 +85,11 @@ export function buildAgentOnboardingProtocol() {
|
|
|
82
85
|
completionCheck: [
|
|
83
86
|
'Personal OS directory exists.',
|
|
84
87
|
'The approved self, work, and person context are saved locally.',
|
|
85
|
-
'
|
|
86
|
-
'The user can see what they did not have to explain again.',
|
|
88
|
+
'The CLI sample, if used, is labeled as a preview rather than an onboarding completion signal.',
|
|
87
89
|
'The completion report lists public skills, ohayo/oyasumi/retro routines, real MCP config merge, source allowlists, and MCP get_context/search verification as unfinished operationalization work.',
|
|
88
90
|
'The selected MCP client has a Brainbase config snippet merged into its real config after user approval.',
|
|
91
|
+
'A fresh agent session used Brainbase get_context/search for the real request.',
|
|
92
|
+
'The user personally confirmed that the actual agent answer was useful.',
|
|
89
93
|
'Source diagnosis is optional follow-up work, but source allowlist/import/candidate review must be explicitly completed or deferred.'
|
|
90
94
|
]
|
|
91
95
|
};
|
|
@@ -119,8 +123,9 @@ export function buildValueDemo(input) {
|
|
|
119
123
|
dataDir: input.os.dataDir,
|
|
120
124
|
firstValueReady: ready
|
|
121
125
|
});
|
|
126
|
+
const actualAgentPrompt = `Brainbaseのget_contextとsearchを使い、保存済み文脈を根拠に「${scenario}」へ回答してください。使った前提と未確認事項を分けてください。`;
|
|
122
127
|
return {
|
|
123
|
-
goal: '
|
|
128
|
+
goal: '実エージェント接続前に、保存した文脈から作れる出力をプレビューする。',
|
|
124
129
|
ready,
|
|
125
130
|
missing,
|
|
126
131
|
scenario,
|
|
@@ -145,9 +150,12 @@ export function buildValueDemo(input) {
|
|
|
145
150
|
valueExplanation,
|
|
146
151
|
operationalization,
|
|
147
152
|
nextStep: ready
|
|
148
|
-
? '
|
|
153
|
+
? 'MCP設定を反映して新しいエージェントを開き、実際の回答を確認した後、本人が役立ったかを判断します。'
|
|
149
154
|
: `まず最小文脈を保存します: ${missing.map(missingLabel).join(', ')}。`,
|
|
150
|
-
completionSignal: ready ? '
|
|
155
|
+
completionSignal: ready ? 'cli_sample_ready' : 'needs_seed',
|
|
156
|
+
onboardingComplete: false,
|
|
157
|
+
humanValueStatus: 'not_observed',
|
|
158
|
+
actualAgentPrompt
|
|
151
159
|
};
|
|
152
160
|
}
|
|
153
161
|
export function buildSourceDiagnosis(input) {
|
|
@@ -504,12 +512,12 @@ export function renderValueDemo(input, format, details = false) {
|
|
|
504
512
|
return `${JSON.stringify(demo, null, 2)}\n`;
|
|
505
513
|
}
|
|
506
514
|
const lines = [
|
|
507
|
-
'# Brainbase
|
|
515
|
+
'# Brainbase 文脈プレビュー',
|
|
508
516
|
'',
|
|
509
517
|
demo.goal,
|
|
510
518
|
'',
|
|
511
519
|
`- 状態: ${demo.ready ? '準備済み' : '要設定'}`,
|
|
512
|
-
`-
|
|
520
|
+
`- プレビュー状態: ${demo.completionSignal}`,
|
|
513
521
|
`- 不足: ${demo.missing.length === 0 ? 'なし' : demo.missing.map(missingLabel).join(', ')}`,
|
|
514
522
|
'',
|
|
515
523
|
'## 今すぐ試す',
|
|
@@ -517,6 +525,7 @@ export function renderValueDemo(input, format, details = false) {
|
|
|
517
525
|
'',
|
|
518
526
|
'## サンプル結果',
|
|
519
527
|
'これはCLIが保存済み文脈から組み立てたサンプルです。実際のエージェント応答ではありません。',
|
|
528
|
+
'このサンプルだけでは初回価値の達成になりません。',
|
|
520
529
|
'- 実エージェント接続: 未確認',
|
|
521
530
|
`- 実応答の確認方法: ${demo.realVerification}`,
|
|
522
531
|
'',
|
|
@@ -527,9 +536,10 @@ export function renderValueDemo(input, format, details = false) {
|
|
|
527
536
|
'',
|
|
528
537
|
'## 次に実行',
|
|
529
538
|
demo.ready
|
|
530
|
-
? `\`brainbase onboard:
|
|
539
|
+
? `\`brainbase onboard:install --target codex --dir ${shellArg(input.os.dataDir)} --dry-run\``
|
|
531
540
|
: `\`brainbase onboard:start --dir ${shellArg(input.os.dataDir)} --target codex\``,
|
|
532
541
|
demo.nextStep,
|
|
542
|
+
...(demo.ready ? ['', '## 実エージェントへ送る依頼', demo.actualAgentPrompt, '', '回答後、本人に役立ったかを確認してください。'] : []),
|
|
533
543
|
''
|
|
534
544
|
];
|
|
535
545
|
if (details) {
|
|
@@ -780,7 +790,7 @@ function buildValueExplanation(input) {
|
|
|
780
790
|
}
|
|
781
791
|
function buildMissingDemoAnswer(missing) {
|
|
782
792
|
return [
|
|
783
|
-
'
|
|
793
|
+
'まだ接続前プレビューを作れません。',
|
|
784
794
|
`足りない最小メモ: ${missing.map(missingLabel).join(', ')}。`,
|
|
785
795
|
'まず、あなたが毎回説明したくないことを一つだけ保存してから、同じプロンプトをもう一度試します。'
|
|
786
796
|
].join('\n');
|
|
@@ -6,12 +6,12 @@ export function buildOperationalizationPlan(input = {}) {
|
|
|
6
6
|
const skillsTarget = target === 'claude' ? 'claude' : target === 'codex' ? 'codex' : 'portable';
|
|
7
7
|
const routinesTarget = target === 'claude' ? 'claude' : 'codex';
|
|
8
8
|
return {
|
|
9
|
-
goal: '
|
|
9
|
+
goal: 'CLIプレビュー後、実エージェントで本人が初回価値を確認するまでを順に完了する。',
|
|
10
10
|
completed: input.firstValueReady
|
|
11
11
|
? [
|
|
12
12
|
'承認した最小文脈をローカルへ保存済み。',
|
|
13
|
-
'doctor
|
|
14
|
-
'onboard:demo
|
|
13
|
+
'doctorでCLI文脈プレビューの準備完了を確認可能。',
|
|
14
|
+
'onboard:demoを実行した場合も、確認できるのはローカルCLIサンプルだけ。'
|
|
15
15
|
]
|
|
16
16
|
: [
|
|
17
17
|
'Personal OSの準備を開始済み。'
|
|
@@ -59,9 +59,11 @@ export function buildOperationalizationPlan(input = {}) {
|
|
|
59
59
|
}
|
|
60
60
|
],
|
|
61
61
|
recommendedOrder: [
|
|
62
|
-
'対象エージェントへ公開スキルを配置する。',
|
|
63
|
-
'ohayo / oyasumi / retroを生成し、一時停止または確認付きで登録する。',
|
|
64
62
|
'Brainbase MCP設定を実際のCodex / Claude / CodeCode設定へ反映し、エージェントを再起動する。',
|
|
63
|
+
'新しいエージェントで現実の依頼を送り、MCP get_contextとsearchを使った実回答を確認する。',
|
|
64
|
+
'利用者本人に役立ったかを確認する。役立たなければ不足文脈だけを追加して再試行する。',
|
|
65
|
+
'対象エージェントへ公開スキルを配置する。',
|
|
66
|
+
'必要になった時だけohayo / oyasumi / retroを確認付きで登録する。',
|
|
65
67
|
'追加文脈が必要な場合だけ参照許可範囲を決め、取込と候補レビューを行う。',
|
|
66
68
|
'doctorを実行し、新しいエージェントセッションでMCP get_contextとsearchを確認する。'
|
|
67
69
|
],
|
|
@@ -72,7 +74,8 @@ export function buildOperationalizationPlan(input = {}) {
|
|
|
72
74
|
'参照元の取込はローカル優先とし、正本化前にレビューします。'
|
|
73
75
|
],
|
|
74
76
|
completionCheck: [
|
|
75
|
-
'
|
|
77
|
+
'実際のエージェントがBrainbase MCP get_context/searchを使って現実の依頼へ回答済み。',
|
|
78
|
+
'利用者本人がその回答を役立つと確認済み。',
|
|
76
79
|
'完了報告に残っている運用設定をすべて記載済み。',
|
|
77
80
|
'実設定反映後、対象エージェントからBrainbase MCP get_context/searchを呼び出せる。',
|
|
78
81
|
'参照許可範囲と候補レビューを完了、または明示的に延期済み。'
|
package/dist/skills.js
CHANGED
|
@@ -23,21 +23,23 @@ const SKILL_DEFINITIONS = {
|
|
|
23
23
|
'',
|
|
24
24
|
'## 手順',
|
|
25
25
|
'',
|
|
26
|
-
'1.
|
|
27
|
-
'2. `brainbase onboard:
|
|
28
|
-
'3.
|
|
29
|
-
'4. `brainbase onboard:
|
|
30
|
-
'5. `
|
|
31
|
-
'6.
|
|
32
|
-
'7. `
|
|
33
|
-
'8.
|
|
26
|
+
'1. 最初に、Brainbaseを使って試したい現実の依頼を一つ聞く。',
|
|
27
|
+
'2. `brainbase onboard:start --target codex|claude|codecode` を実行し、本人、プロジェクト、関係者、判断基準の最小候補を確認する。',
|
|
28
|
+
'3. ユーザーが明示的に承認した事実だけを `brainbase onboard:seed` で保存する。',
|
|
29
|
+
'4. `brainbase onboard:install --target codex|claude|codecode --dry-run` でMCP設定を確認し、承認後に実設定へ反映して対象エージェントを再起動する。',
|
|
30
|
+
'5. 新しい実際のエージェントで、Brainbaseの `get_context` と `search` を使うよう明示して最初の現実の依頼を実行する。',
|
|
31
|
+
'6. 実回答、使われた保存済み文脈、未確認事項をユーザーへ示し、本人に役立ったかを確認する。ここまでを10分以内の初回価値候補ジャーニーとして測る。',
|
|
32
|
+
'7. CLIの `onboard:demo` は必要なら接続前のプレビューに使えるが、CLIサンプルは初回価値の達成証拠にしない。',
|
|
33
|
+
'8. 本人が役立つと確認した後だけ、必要に応じてsource診断、追加候補、Skills、ルーティンへ進む。',
|
|
34
|
+
'9. 継続利用するプロジェクトの詳細が必要なら、本人確認後に `brainbase onboard:projects --write` で登録する。',
|
|
34
35
|
'',
|
|
35
36
|
'## 安全ルール',
|
|
36
37
|
'',
|
|
37
38
|
`- ${SECRET_RULE}`,
|
|
38
39
|
'- Brainbaseはローカルファーストで扱う。ユーザーが別のローカルパスを明示しない限り、ローカルMCPサーバーと `~/.brainbase/personal-os/` を使う。',
|
|
39
40
|
'- メール、カレンダー、ドライブ、タスク、メモの生データは `sources/` 配下の二次材料として扱う。',
|
|
40
|
-
'- canonical contextは、ユーザー確認後の `graph.json`、`relationships.json`、`personal-kg.jsonl`、`decisions.jsonl` だけから作る。'
|
|
41
|
+
'- canonical contextは、ユーザー確認後の `graph.json`、`relationships.json`、`personal-kg.jsonl`、`decisions.jsonl` だけから作る。',
|
|
42
|
+
'- 終了コード0、`ready: true`、CLIサンプル、合成ペルソナ判定を、人間本人の価値認識に置き換えない。'
|
|
41
43
|
].join('\n')
|
|
42
44
|
},
|
|
43
45
|
'brainbase-connected-world-onboarding': {
|
package/dist/tools.js
CHANGED
|
@@ -124,7 +124,7 @@ export function onboardingStatus(os) {
|
|
|
124
124
|
ready: valueDemoReady,
|
|
125
125
|
missing,
|
|
126
126
|
command: `brainbase onboard:demo --dir ${shellArg(os.dataDir)} --scenario "<real request>"`,
|
|
127
|
-
completionSignal: valueDemoReady ? '
|
|
127
|
+
completionSignal: valueDemoReady ? 'cli_sample_ready' : 'needs_seed'
|
|
128
128
|
},
|
|
129
129
|
operationalization,
|
|
130
130
|
counts: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unson/brainbase-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Local-first Brainbase MCP server and personal onboarding kit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=20"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "de6ebc16b28dd6ac37c05443f0f6fe8b5abd0602"
|
|
65
65
|
}
|