kevlar-4u 1.0.0 → 1.1.0
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.ja.md +348 -0
- package/README.ko.md +348 -0
- package/README.md +28 -28
- package/README.zh.md +348 -0
- package/config/mcp-config.json +2 -2
- package/dist/__tests__/createPersonaWizard.test.js +6 -1
- package/dist/__tests__/createPersonaWizard.test.js.map +1 -1
- package/dist/__tests__/execution.test.js +1 -1
- package/dist/__tests__/helpTool.test.js +2 -2
- package/dist/__tests__/helpTool.test.js.map +1 -1
- package/dist/__tests__/listPersonasTool.test.js +3 -3
- package/dist/__tests__/reviewContentWizard.test.js +2 -42
- package/dist/__tests__/reviewContentWizard.test.js.map +1 -1
- package/dist/__tests__/sanitize.test.js +2 -1
- package/dist/__tests__/sanitize.test.js.map +1 -1
- package/dist/execution/aggregator.js +6 -6
- package/dist/execution/aggregator.js.map +1 -1
- package/dist/execution/base.d.ts +1 -1
- package/dist/execution/base.js +1 -1
- package/dist/execution/config.d.ts +1 -1
- package/dist/execution/config.js +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.js +2 -2
- package/dist/execution/modes/orchestration.d.ts +1 -1
- package/dist/execution/modes/orchestration.js +6 -6
- package/dist/execution/modes/orchestration.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/configureTool.js +1 -1
- package/dist/tools/configureTool.js.map +1 -1
- package/dist/tools/createPersonaTool.d.ts +7 -1
- package/dist/tools/createPersonaTool.d.ts.map +1 -1
- package/dist/tools/createPersonaTool.js +166 -45
- package/dist/tools/createPersonaTool.js.map +1 -1
- package/dist/tools/createPersonaWizardTool.d.ts.map +1 -1
- package/dist/tools/createPersonaWizardTool.js +705 -100
- package/dist/tools/createPersonaWizardTool.js.map +1 -1
- package/dist/tools/deletePersonaTool.js +6 -6
- package/dist/tools/deletePersonaTool.js.map +1 -1
- package/dist/tools/deletePersonaWizardTool.js +1 -1
- package/dist/tools/deletePersonaWizardTool.js.map +1 -1
- package/dist/tools/helpTool.js +9 -9
- package/dist/tools/listPersonasTool.js +8 -8
- package/dist/tools/listPersonasTool.js.map +1 -1
- package/dist/tools/reviewContentWizardTool.js +16 -16
- package/dist/tools/reviewContentWizardTool.js.map +1 -1
- package/dist/tools/reviewTool.js +4 -4
- package/dist/utils/errors.d.ts +1 -1
- package/dist/utils/errors.js +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/parser.d.ts +1 -1
- package/dist/utils/parser.d.ts.map +1 -1
- package/package.json +4 -4
- package/skills/_template.md +26 -12
- package/dist/__tests__/persona_creation_debug.test.d.ts +0 -2
- package/dist/__tests__/persona_creation_debug.test.d.ts.map +0 -1
- package/dist/__tests__/persona_creation_debug.test.js +0 -56
- package/dist/__tests__/persona_creation_debug.test.js.map +0 -1
- package/dist/__tests__/resetPersonasWizard.test.d.ts +0 -2
- package/dist/__tests__/resetPersonasWizard.test.d.ts.map +0 -1
- package/dist/__tests__/resetPersonasWizard.test.js +0 -74
- package/dist/__tests__/resetPersonasWizard.test.js.map +0 -1
- package/dist/prompts/reviewDispatcherPrompt.d.ts +0 -2
- package/dist/prompts/reviewDispatcherPrompt.d.ts.map +0 -1
- package/dist/prompts/reviewDispatcherPrompt.js +0 -67
- package/dist/prompts/reviewDispatcherPrompt.js.map +0 -1
- package/dist/tools/resetPersonasTool.d.ts +0 -7
- package/dist/tools/resetPersonasTool.d.ts.map +0 -1
- package/dist/tools/resetPersonasTool.js +0 -447
- package/dist/tools/resetPersonasTool.js.map +0 -1
- package/dist/tools/resetPersonasWizardTool.d.ts +0 -9
- package/dist/tools/resetPersonasWizardTool.d.ts.map +0 -1
- package/dist/tools/resetPersonasWizardTool.js +0 -125
- package/dist/tools/resetPersonasWizardTool.js.map +0 -1
- package/skills/tmp/wizard-create-cwzrrpim_draft.json +0 -26
- package/skills/tmp/wizard-create-cwzrrpim_wizard.json +0 -26
- package/skills/tmp/wizard-create-d81intme_draft.json +0 -26
- package/skills/tmp/wizard-create-d81intme_wizard.json +0 -26
- package/skills/tmp/wizard-create-g50jqzmh_draft.json +0 -8
- package/skills/tmp/wizard-create-g50jqzmh_wizard.json +0 -8
- package/skills/tmp/wizard-create-onupu9wb_draft.json +0 -8
- package/skills/tmp/wizard-create-onupu9wb_wizard.json +0 -8
- package/skills/tmp/wizard-review-fwbxe3d2_review_wizard.json +0 -9
- package/skills/tmp/wizard-review-sypg5e9d_review_wizard.json +0 -9
- package/skills/wechat_official/wechat_official.md +0 -26
- package/skills/wechat_official/wechat_official_1.md +0 -31
- package/skills/xiaohongshu/xiaohongshu.md +0 -26
- package/skills/xiaohongshu/xiaohongshu_1.md +0 -29
package/README.ja.md
ADDED
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
# Kevlar — コメント欄シミュレーター
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
🌐 [English](README.md) · [中文](README.zh.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
> **カジュアルユーザー、口うるさいネット民、技術層、メディア関係者など、さまざまな立場のリアクションをシミュレーション。公開前に表現の問題、誤解、コミュニケーションリスクを洗い出します。**
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
公開予定のあらゆるコンテンツ — **記事、ツイート、動画スクリプト、プロダクト紹介、プレスリリース、告知、Redditの投稿、V2EXの投稿、Hacker Newsのヘッドライン** — をそのままKevlarに放り込んでください。「いいね」だけを返すツールではありません。実際のインターネットのように、**疑問を投げかけ、誤解し、こき下ろし、細かいツッコミを入れ、理解度をテスト**します。
|
|
17
|
+
|
|
18
|
+
書き手は往々にして**「知識の呪い」**に苦しみます:
|
|
19
|
+
「明確に書いたつもりなのに、相手に伝わらない」
|
|
20
|
+
「重要なポイントは強調したはずなのに、読者は何が言いたいのかわからない」
|
|
21
|
+
|
|
22
|
+
しかも、多くのプラットフォームには本当の意味での**A/Bテスト**はありません。一度公開してしまうと、**最初のオーガニックトラフィックの波**が過ぎ去った頃には、修正するには遅すぎます。
|
|
23
|
+
|
|
24
|
+
**Kevlarは、公開前にこれらの問題を明らかにします。**
|
|
25
|
+
|
|
26
|
+
## こんな方におすすめ
|
|
27
|
+
|
|
28
|
+
**インディーデベロッパー** / **コンテンツクリエイター** / **プロダクトチーム** / **PRチーム** / X、Reddit、V2EX、Hacker Newsをよく利用する方 / コンテンツの質とリーチを向上させたいすべての方
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## コア機能
|
|
33
|
+
|
|
34
|
+
### 1. 高度にカスタマイズ可能なレビュアー(ペルソナカスタマイズ)
|
|
35
|
+
|
|
36
|
+
単一のAI視点からの脱却を、包括的なペルソナカスタマイズで実現:
|
|
37
|
+
|
|
38
|
+
- **コア属性**:年齢、興味関心、性格、立場。
|
|
39
|
+
- **認知と関係性**:盲点(例:特定ドメインに対するバイアス)や、作者との社会的関係(例:厳しいメンター、過激な反対者)を定義。
|
|
40
|
+
- **文化適応**:入力コンテンツの言語を自動検出し、それにマッチしたローカライズされた文化的コンテキストを推論。
|
|
41
|
+
|
|
42
|
+
### 2. 完全自動化フィードバックパイプライン
|
|
43
|
+
|
|
44
|
+
- **スマートディスパッチ**:作成した作品を貼り付けると、AIディスパッチャーが自動的にコンテンツの特性を分析。
|
|
45
|
+
- **精密マッチング**:最も関連性の高いレビュアーを動的にフィルタリングしてスケジューリング。
|
|
46
|
+
- **多次元的衝突**:多様な立場や専門的な視点から、差別化されたコメントとフィードバックを生成。
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## クイックスタート
|
|
51
|
+
|
|
52
|
+
**Node.js 20+** が必要です。
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install # 依存関係をインストール
|
|
56
|
+
npm run build # TypeScript をコンパイル
|
|
57
|
+
npm run setup # ゼロコンフィグセットアップ(MCPクライアントを自動検出して設定を書き込み)
|
|
58
|
+
npm run kevlar-4u # インタラクティブインストールCLI(クライアントを手動選択)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
インストール後、AIクライアントを再起動すればKevlarを使い始められます。以下のクライアントを自動設定に対応:
|
|
62
|
+
|
|
63
|
+
**Claude Desktop** / **Cursor** / **Windsurf** / **OpenCode** / **Codex** / **Antigravity** / **CodeBuddy CN** / **WorkBuddy**
|
|
64
|
+
|
|
65
|
+
ローカル開発:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm run dev
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
本番起動:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm start
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 使い方ガイド
|
|
80
|
+
|
|
81
|
+
### コアワークフロー
|
|
82
|
+
|
|
83
|
+
Kevlarのすべての主要操作は Wizard ツールを通じて行います — AIに対して自然言語でやりたいことを伝えるだけで、Kevlarがすべてを処理します。
|
|
84
|
+
|
|
85
|
+
### 推奨ツールフロー
|
|
86
|
+
|
|
87
|
+
| Wizardツール | 目的 | 主要な動作 |
|
|
88
|
+
| --- | --- | --- |
|
|
89
|
+
| `review_content_wizard` | コンテンツをレビュー | コンテンツ提出 → レビュアー選択 → 確認 → 多次元フィードバック |
|
|
90
|
+
| `create_persona_wizard` | ペルソナを作成 | キャラクターを説明 → AIがフィールドを抽出 → 最終確認 → ペルソナ保存 |
|
|
91
|
+
| `delete_persona_wizard` | ペルソナを削除 | 対象を選択 → `confirm delete {ペルソナ名}` と返信 → 完了 |
|
|
92
|
+
| `configure_wizard` | 設定を変更 | 変更内容をプレビュー → `confirm config changes` と返信 → 書き込み |
|
|
93
|
+
|
|
94
|
+
低レベルの直接ツール(自動化スクリプト向け):
|
|
95
|
+
|
|
96
|
+
| ツール | 目的 |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| `create_persona` | ペルソナを直接、または下書きから作成 |
|
|
99
|
+
| `delete_persona` | ペルソナを直接削除(`confirm: true` が必要) |
|
|
100
|
+
| `configure` | 設定を直接書き込み |
|
|
101
|
+
| `get_execution_modes` | 現在のモードと利用可能性を確認 |
|
|
102
|
+
| `list_personas` | ローカルのペルソナ一覧を表示 |
|
|
103
|
+
| `kevlar_help` | ヘルプを表示 |
|
|
104
|
+
|
|
105
|
+
### コンテンツレビューフロー
|
|
106
|
+
|
|
107
|
+
`review_content_wizard` は「コンテンツ保存、レビュアー選択、実行確認」を安定したフローとして連結します。
|
|
108
|
+
|
|
109
|
+
```mermaid
|
|
110
|
+
flowchart TD
|
|
111
|
+
A["Submit content for review"] --> B{"Number of local personas"}
|
|
112
|
+
B -->|0| C["Prompt to create a persona first, save current content state"]
|
|
113
|
+
B -->|1-2| D["Show all reviewers, ask user to confirm"]
|
|
114
|
+
B -->|3+| E["Sampling recommendation or heuristic recommendation of 1-3 reviewers"]
|
|
115
|
+
D --> F["Execute review internally"]
|
|
116
|
+
E --> F
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### レビュアーペルソナの作成
|
|
120
|
+
|
|
121
|
+
`create_persona_wizard` はペルソナ作成をステップバイステップでガイドします。
|
|
122
|
+
|
|
123
|
+
```mermaid
|
|
124
|
+
flowchart LR
|
|
125
|
+
A["Age range"] --> B["Interests"]
|
|
126
|
+
B --> C["Personality traits"]
|
|
127
|
+
C --> D["Platforms"]
|
|
128
|
+
D --> E["Final confirmation"]
|
|
129
|
+
E -->|Confirm creation| F["Save persona"]
|
|
130
|
+
E -->|Edit fields| E
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
作成後、Kevlarは自動的に文化的背景、作者との関係、立場、盲点を推論し、`skills/*.md` に保存します。
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 実行モード
|
|
138
|
+
|
|
139
|
+
Kevlarは3つの実行モードをサポートしています。デフォルトの `auto` は環境に基づいて最適なモードを選択します。
|
|
140
|
+
|
|
141
|
+
| モード | 識別子 | 説明 | 最適な用途 |
|
|
142
|
+
| --- | --- | --- | --- |
|
|
143
|
+
| MCP Sampling | `mcp_sampling` | 各レビュアーに独立したサンプリングリクエスト、最大分離 | Sampling対応クライアント、本格的な多視点レビューが必要な場合 |
|
|
144
|
+
| Direct API | `direct_api` | 外部モデルAPIを直接呼び出し | Sampling非対応クライアント、またはスクリプト自動化 |
|
|
145
|
+
| Orchestration(ホスト補助フォールバック) | `orchestration` | ホストAIが補完、低分離のフォールバック | SamplingもAPI Keyも利用できない場合の最終手段 |
|
|
146
|
+
|
|
147
|
+
`auto` モードの解決順序:
|
|
148
|
+
|
|
149
|
+
1. `skills/kevlar-config.json` で指定されたモードを使用(設定されている場合)
|
|
150
|
+
2. なければ `KEVLAR_MODE` 環境変数を読み取り
|
|
151
|
+
3. なければ利用可能性に応じて自動選択:`mcp_sampling` → `direct_api` → `orchestration`
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 設定
|
|
156
|
+
|
|
157
|
+
### 実行時設定
|
|
158
|
+
|
|
159
|
+
`configure_wizard` を使って実行時の設定を変更できます。設定は `skills/kevlar-config.json` に書き込まれます(ローカルのみ、リポジトリにはコミットされません)。
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"mode": "auto",
|
|
164
|
+
"multiAgent": {
|
|
165
|
+
"maxConcurrency": 3
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 環境変数
|
|
171
|
+
|
|
172
|
+
| 変数 | デフォルト値 | 説明 |
|
|
173
|
+
| --- | --- | --- |
|
|
174
|
+
| `KEVLAR_MODE` | `auto` | `auto`, `orchestration`, `mcp_sampling`, `direct_api` |
|
|
175
|
+
| `KEVLAR_MAX_CONCURRENT` | `3` | 最大同時レビュアー数 |
|
|
176
|
+
| `KEVLAR_TOKEN_BUDGET_PER_TASK` | `50000` | レビュータスクあたりのトークン予算 |
|
|
177
|
+
| `KEVLAR_MIN_DELAY_MS` | `1000` | リクエスト間の最小遅延 |
|
|
178
|
+
| `KEVLAR_SKILLS_DIR` | `<repo>/skills` | カスタムペルソナと設定ディレクトリ |
|
|
179
|
+
| `KEVLAR_API_KEY` | — | 優先Direct APIキー |
|
|
180
|
+
| `ANTHROPIC_API_KEY` | — | Anthropic APIキー |
|
|
181
|
+
| `OPENAI_API_KEY` | — | OpenAI APIキー |
|
|
182
|
+
| `LOG_LEVEL` | `info` | `debug`, `info`, `warn`, `error` |
|
|
183
|
+
|
|
184
|
+
> APIキーは環境変数からのみ読み取られます — 設定ファイルに書き込まれることは決してありません。
|
|
185
|
+
|
|
186
|
+
### MCPクライアントの手動設定
|
|
187
|
+
|
|
188
|
+
Claude Desktopの例:
|
|
189
|
+
|
|
190
|
+
```json
|
|
191
|
+
{
|
|
192
|
+
"mcpServers": {
|
|
193
|
+
"kevlar": {
|
|
194
|
+
"command": "node",
|
|
195
|
+
"args": ["/ABSOLUTE/PATH/TO/kevlar/dist/index.js"],
|
|
196
|
+
"env": {
|
|
197
|
+
"KEVLAR_MODE": "auto",
|
|
198
|
+
"KEVLAR_MAX_CONCURRENT": "3"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
カスタムペルソナディレクトリ:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"env": {
|
|
210
|
+
"KEVLAR_SKILLS_DIR": "/ABSOLUTE/PATH/TO/skills"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## セキュリティ境界
|
|
218
|
+
|
|
219
|
+
- `sessionId` は `[a-z0-9-]` のみ許可。
|
|
220
|
+
- ペルソナの書き込み・削除操作は、パスバリデーションにより `skills/` ディレクトリ内に制限。
|
|
221
|
+
- 実行中の下書きやウィザード状態は `skills/tmp/` に保存され、起動時に期限切れの下書きはクリーンアップ。
|
|
222
|
+
- ペルソナ削除には対象の選択と完全な確認フレーズの返信が必要。
|
|
223
|
+
- 設定変更は確認前にプレビューが必須。
|
|
224
|
+
- APIキーはツールパラメータ経由で渡されたり、ローカル設定に書き込まれることはありません。
|
|
225
|
+
- `orchestration` 以外のモードではレビューロックを使用し、複数の外部モデルタスク間のリソース競合を防止。
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## アーキテクチャ概要
|
|
230
|
+
|
|
231
|
+
Kevlarは**サーバーサイドワークフロー+実行レイヤー**アーキテクチャを採用しています。
|
|
232
|
+
|
|
233
|
+
```mermaid
|
|
234
|
+
flowchart TD
|
|
235
|
+
User["User"] --> Client["MCP Client / Host AI"]
|
|
236
|
+
Client --> Tools["Kevlar MCP Tools"]
|
|
237
|
+
Tools --> Wizards["Server-side State Machine Wizards"]
|
|
238
|
+
Tools --> Execution["Multi-mode Execution Layer"]
|
|
239
|
+
Wizards --> Tmp["skills/tmp Session State"]
|
|
240
|
+
Execution --> Personas["skills/*.md Reviewer Personas"]
|
|
241
|
+
Execution --> Report["Structured Review Report"]
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
設計原則:
|
|
245
|
+
|
|
246
|
+
- **ステートマシン駆動のワークフロー**:主要フローはツールのステートマシンによって維持され、ホストAIが長いプロンプトを記憶することに依存しない。
|
|
247
|
+
- **AIが理解と表現を担当**:AIは自然言語の抽出、洗練、レコメンデーションを処理し、結果はKevlarが検証可能な状態に書き込まれる。
|
|
248
|
+
- **適応的実行**:MCP Samplingが利用可能な場合はフィールド抽出とレビュアーレコメンデーションに使用し、そうでなければヒューリスティックロジックまたはホスト補助のオーケストレーションにフォールバック。
|
|
249
|
+
- **安全な確認**:削除、リセット、設定書き込みなどの高リスク操作は、すべて確認ウィザードを通過する。
|
|
250
|
+
|
|
251
|
+
### ディレクトリ構造
|
|
252
|
+
|
|
253
|
+
```text
|
|
254
|
+
kevlar/
|
|
255
|
+
├── config/
|
|
256
|
+
│ └── mcp-config.json # MCP client config template
|
|
257
|
+
├── docs/ # Architecture design, audit reports
|
|
258
|
+
├── scripts/ # Install & config scripts
|
|
259
|
+
│ ├── cli.ts # Interactive install CLI
|
|
260
|
+
│ ├── registry.ts # MCP client detection
|
|
261
|
+
│ └── setup.ts # Zero-config setup script
|
|
262
|
+
├── skills/ # Reviewer persona library
|
|
263
|
+
│ ├── _template.md # Persona template
|
|
264
|
+
│ └── tmp/ # Runtime wizard session state
|
|
265
|
+
├── src/
|
|
266
|
+
│ ├── index.ts # stdio server entry
|
|
267
|
+
│ ├── server.ts # MCP server, DI, tool registration
|
|
268
|
+
│ ├── __tests__/ # Test suite
|
|
269
|
+
│ ├── execution/ # Multi-mode execution layer
|
|
270
|
+
│ │ ├── index.ts # Execution entry, mode resolution
|
|
271
|
+
│ │ ├── base.ts # Type definitions & interfaces
|
|
272
|
+
│ │ ├── client.ts # Client capability detection
|
|
273
|
+
│ │ ├── config.ts # Config read/write
|
|
274
|
+
│ │ ├── aggregator.ts # Review report aggregation
|
|
275
|
+
│ │ ├── limiter.ts # Concurrency limiting & retry
|
|
276
|
+
│ │ ├── lock.ts # Review lock
|
|
277
|
+
│ │ ├── parallel.ts # Shared parallel execution
|
|
278
|
+
│ │ └── modes/
|
|
279
|
+
│ │ ├── orchestration.ts
|
|
280
|
+
│ │ ├── sampling.ts
|
|
281
|
+
│ │ └── direct_api.ts
|
|
282
|
+
│ ├── tools/ # MCP tools
|
|
283
|
+
│ │ ├── index.ts # Tool registry
|
|
284
|
+
│ │ ├── listPersonasTool.ts
|
|
285
|
+
│ │ ├── createPersonaTool.ts # Create persona + draft management
|
|
286
|
+
│ │ ├── createPersonaWizardTool.ts
|
|
287
|
+
│ │ ├── deletePersonaTool.ts
|
|
288
|
+
│ │ ├── deletePersonaWizardTool.ts
|
|
289
|
+
│ │ ├── reviewTool.ts
|
|
290
|
+
│ │ ├── reviewContentWizardTool.ts
|
|
291
|
+
│ │ ├── configureTool.ts
|
|
292
|
+
│ │ ├── configureWizardTool.ts
|
|
293
|
+
│ │ ├── getModesTool.ts
|
|
294
|
+
│ │ └── helpTool.ts
|
|
295
|
+
│ ├── prompts/
|
|
296
|
+
│ │ └── reviewDispatcherPrompt.ts # Internal design reference
|
|
297
|
+
│ └── utils/
|
|
298
|
+
│ ├── errors.ts # Error codes & formatting
|
|
299
|
+
│ ├── logger.ts # Structured logging
|
|
300
|
+
│ ├── parser.ts # Persona file parsing & writing
|
|
301
|
+
│ ├── sanitize.ts # Credential scanning, prompt boundary handling
|
|
302
|
+
│ └── ...
|
|
303
|
+
└── package.json
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## レビューペルソナのコントリビュート
|
|
309
|
+
|
|
310
|
+
`skills/` 以下にプラットフォームごとにサブディレクトリと `.md` ファイルを追加するか、`skills/` 直下に配置してください。カスタムペルソナファイルはデフォルトで `.gitignore` により除外され、リポジトリにコミットされません。
|
|
311
|
+
|
|
312
|
+
テンプレート `skills/_template.md` を参照:
|
|
313
|
+
|
|
314
|
+
```markdown
|
|
315
|
+
---
|
|
316
|
+
id: your_persona_id
|
|
317
|
+
name: Display name
|
|
318
|
+
description: One-line description of what this reviewer focuses on
|
|
319
|
+
tags:
|
|
320
|
+
- Platform
|
|
321
|
+
- Interest
|
|
322
|
+
author: custom
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
Age range:
|
|
326
|
+
Interests:
|
|
327
|
+
Platforms:
|
|
328
|
+
Personality traits:
|
|
329
|
+
- Trait → Behavior
|
|
330
|
+
|
|
331
|
+
Cultural background:
|
|
332
|
+
Relationship with author:
|
|
333
|
+
Stance:
|
|
334
|
+
Blind spots:
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
カスタムペルソナはレビューに参加する前にフィールドの完全性バリデーションを受けます。最低でも、プラットフォーム、性格特性、盲点などの情報がパース可能であるか、descriptionに含まれている必要があります。
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## リリース前チェックリスト
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
npm run build
|
|
345
|
+
npm test
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
リリース前には、[docs/PRE_RELEASE_AUDIT_REQUEST.md](docs/PRE_RELEASE_AUDIT_REQUEST.md) をローカルAIに渡して独立した監査を依頼することを推奨します。
|