@nahisaho/katashiro 0.1.1 → 0.1.3
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/.github/copilot-skills.json +319 -0
- package/.github/workflows/ci.yml +80 -0
- package/AGENTS.md +198 -0
- package/CLAUDE.md +221 -0
- package/dist/analyzer.d.ts +2 -0
- package/dist/analyzer.js +3 -0
- package/dist/analyzer.js.map +1 -0
- package/dist/collector.d.ts +2 -0
- package/dist/collector.js +3 -0
- package/dist/collector.js.map +1 -0
- package/dist/core.d.ts +2 -0
- package/dist/core.js +3 -0
- package/dist/core.js.map +1 -0
- package/dist/feedback.d.ts +2 -0
- package/dist/feedback.js +3 -0
- package/dist/feedback.js.map +1 -0
- package/dist/generator.d.ts +2 -0
- package/dist/generator.js +3 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge.d.ts +2 -0
- package/dist/knowledge.js +3 -0
- package/dist/knowledge.js.map +1 -0
- package/package.json +11 -2
- package/scripts/postinstall.js +72 -0
- package/tsconfig.json +0 -18
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/microsoft/vscode-copilot-skill-schema/main/schema.json",
|
|
3
|
+
"name": "katashiro",
|
|
4
|
+
"displayName": "KATASHIRO Research Assistant",
|
|
5
|
+
"description": "VS Code Agent Mode向け情報収集・分析・コンテンツ生成システム",
|
|
6
|
+
"version": "0.1.0",
|
|
7
|
+
"publisher": "nahisaho",
|
|
8
|
+
"skills": [
|
|
9
|
+
{
|
|
10
|
+
"name": "web-search",
|
|
11
|
+
"displayName": "Web検索",
|
|
12
|
+
"description": "Webを検索して情報を収集します",
|
|
13
|
+
"when": "ユーザーが「〜について調べて」「検索して」「最新情報を探して」と依頼した場合",
|
|
14
|
+
"examples": [
|
|
15
|
+
"TypeScriptのベストプラクティスについて調べて",
|
|
16
|
+
"2026年のAIトレンドを検索して",
|
|
17
|
+
"〇〇社の最新ニュースを調べて"
|
|
18
|
+
],
|
|
19
|
+
"tool": "katashiro_search",
|
|
20
|
+
"parameters": {
|
|
21
|
+
"query": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "検索クエリ"
|
|
24
|
+
},
|
|
25
|
+
"maxResults": {
|
|
26
|
+
"type": "number",
|
|
27
|
+
"description": "最大結果数",
|
|
28
|
+
"default": 10
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "web-scrape",
|
|
34
|
+
"displayName": "Webページ取得",
|
|
35
|
+
"description": "指定したURLのWebページ内容を取得します",
|
|
36
|
+
"when": "ユーザーが「このURLの内容を取得して」「ページをスクレイピングして」と依頼した場合",
|
|
37
|
+
"examples": [
|
|
38
|
+
"https://example.com の内容を取得して",
|
|
39
|
+
"このページの本文を抽出して",
|
|
40
|
+
"URLの記事を読み込んで"
|
|
41
|
+
],
|
|
42
|
+
"tool": "katashiro_scrape",
|
|
43
|
+
"parameters": {
|
|
44
|
+
"url": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "取得するURL"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "text-analyze",
|
|
52
|
+
"displayName": "テキスト分析",
|
|
53
|
+
"description": "テキストを分析してキーワード、複雑度、構造を抽出します",
|
|
54
|
+
"when": "ユーザーが「分析して」「キーワードを抽出して」「テキストを調べて」と依頼した場合",
|
|
55
|
+
"examples": [
|
|
56
|
+
"この文章を分析して",
|
|
57
|
+
"キーワードを抽出して",
|
|
58
|
+
"テキストの複雑度を調べて"
|
|
59
|
+
],
|
|
60
|
+
"tool": "katashiro_analyze",
|
|
61
|
+
"parameters": {
|
|
62
|
+
"text": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"description": "分析するテキスト"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "entity-extract",
|
|
70
|
+
"displayName": "エンティティ抽出",
|
|
71
|
+
"description": "テキストから人名、組織名、地名などの固有表現を抽出します",
|
|
72
|
+
"when": "ユーザーが「人名を抽出して」「組織名を見つけて」「固有表現をリストアップして」と依頼した場合",
|
|
73
|
+
"examples": [
|
|
74
|
+
"この記事に出てくる人名をリストアップして",
|
|
75
|
+
"組織名と地名を抽出して",
|
|
76
|
+
"固有表現を見つけて"
|
|
77
|
+
],
|
|
78
|
+
"tool": "katashiro_extract_entities",
|
|
79
|
+
"parameters": {
|
|
80
|
+
"text": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"description": "抽出元のテキスト"
|
|
83
|
+
},
|
|
84
|
+
"types": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"description": "抽出するエンティティタイプ",
|
|
87
|
+
"items": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"enum": ["PERSON", "ORGANIZATION", "LOCATION", "DATE", "PRODUCT"]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "topic-model",
|
|
96
|
+
"displayName": "トピック分析",
|
|
97
|
+
"description": "複数の文書からトピックを抽出・分類します",
|
|
98
|
+
"when": "ユーザーが「トピックを分析して」「テーマを分類して」と依頼した場合",
|
|
99
|
+
"examples": [
|
|
100
|
+
"これらの文書のトピックを分析して",
|
|
101
|
+
"記事のテーマを分類して"
|
|
102
|
+
],
|
|
103
|
+
"tool": "katashiro_topics",
|
|
104
|
+
"parameters": {
|
|
105
|
+
"documents": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"description": "分析する文書の配列",
|
|
108
|
+
"items": {
|
|
109
|
+
"type": "string"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"numTopics": {
|
|
113
|
+
"type": "number",
|
|
114
|
+
"description": "抽出するトピック数",
|
|
115
|
+
"default": 5
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "generate-report",
|
|
121
|
+
"displayName": "レポート生成",
|
|
122
|
+
"description": "収集・分析した情報からレポートを生成します",
|
|
123
|
+
"when": "ユーザーが「レポートを作成して」「まとめて」「報告書を生成して」と依頼した場合",
|
|
124
|
+
"examples": [
|
|
125
|
+
"調査結果をレポートにまとめて",
|
|
126
|
+
"分析結果からレポートを生成して",
|
|
127
|
+
"報告書を作成して"
|
|
128
|
+
],
|
|
129
|
+
"tool": "katashiro_generate_report",
|
|
130
|
+
"parameters": {
|
|
131
|
+
"title": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"description": "レポートのタイトル"
|
|
134
|
+
},
|
|
135
|
+
"sections": {
|
|
136
|
+
"type": "array",
|
|
137
|
+
"description": "セクションの配列",
|
|
138
|
+
"items": {
|
|
139
|
+
"type": "object",
|
|
140
|
+
"properties": {
|
|
141
|
+
"heading": { "type": "string" },
|
|
142
|
+
"content": { "type": "string" }
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"format": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"description": "出力形式",
|
|
149
|
+
"enum": ["markdown", "html", "pdf"],
|
|
150
|
+
"default": "markdown"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "summarize",
|
|
156
|
+
"displayName": "要約生成",
|
|
157
|
+
"description": "長文テキストを要約します",
|
|
158
|
+
"when": "ユーザーが「要約して」「まとめて」「〜文字でまとめて」と依頼した場合",
|
|
159
|
+
"examples": [
|
|
160
|
+
"この長文を要約して",
|
|
161
|
+
"300文字以内でまとめて",
|
|
162
|
+
"3行で要点をまとめて"
|
|
163
|
+
],
|
|
164
|
+
"tool": "katashiro_summarize",
|
|
165
|
+
"parameters": {
|
|
166
|
+
"text": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"description": "要約するテキスト"
|
|
169
|
+
},
|
|
170
|
+
"maxLength": {
|
|
171
|
+
"type": "number",
|
|
172
|
+
"description": "最大文字数"
|
|
173
|
+
},
|
|
174
|
+
"style": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"description": "要約スタイル",
|
|
177
|
+
"enum": ["paragraph", "bullets", "headline"],
|
|
178
|
+
"default": "paragraph"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "generate-citation",
|
|
184
|
+
"displayName": "引用生成",
|
|
185
|
+
"description": "参照元から引用を生成します",
|
|
186
|
+
"when": "ユーザーが「引用を生成して」「参考文献を作成して」と依頼した場合",
|
|
187
|
+
"examples": [
|
|
188
|
+
"APA形式で引用を生成して",
|
|
189
|
+
"参考文献リストを作成して"
|
|
190
|
+
],
|
|
191
|
+
"tool": "katashiro_citation",
|
|
192
|
+
"parameters": {
|
|
193
|
+
"source": {
|
|
194
|
+
"type": "object",
|
|
195
|
+
"description": "引用元情報",
|
|
196
|
+
"properties": {
|
|
197
|
+
"title": { "type": "string" },
|
|
198
|
+
"author": { "type": "string" },
|
|
199
|
+
"url": { "type": "string" },
|
|
200
|
+
"date": { "type": "string" }
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"style": {
|
|
204
|
+
"type": "string",
|
|
205
|
+
"description": "引用スタイル",
|
|
206
|
+
"enum": ["APA", "MLA", "Chicago", "IEEE"],
|
|
207
|
+
"default": "APA"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"name": "knowledge-add",
|
|
213
|
+
"displayName": "知識グラフ追加",
|
|
214
|
+
"description": "情報を知識グラフに追加・保存します",
|
|
215
|
+
"when": "ユーザーが「知識グラフに追加して」「保存して」「登録して」と依頼した場合",
|
|
216
|
+
"examples": [
|
|
217
|
+
"この情報を知識グラフに登録して",
|
|
218
|
+
"エンティティを保存して",
|
|
219
|
+
"調査結果を知識ベースに追加して"
|
|
220
|
+
],
|
|
221
|
+
"tool": "katashiro_knowledge_add",
|
|
222
|
+
"parameters": {
|
|
223
|
+
"node": {
|
|
224
|
+
"type": "object",
|
|
225
|
+
"description": "追加するノード",
|
|
226
|
+
"properties": {
|
|
227
|
+
"id": { "type": "string" },
|
|
228
|
+
"type": { "type": "string" },
|
|
229
|
+
"properties": { "type": "object" }
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"edges": {
|
|
233
|
+
"type": "array",
|
|
234
|
+
"description": "関連するエッジ",
|
|
235
|
+
"items": {
|
|
236
|
+
"type": "object",
|
|
237
|
+
"properties": {
|
|
238
|
+
"source": { "type": "string" },
|
|
239
|
+
"target": { "type": "string" },
|
|
240
|
+
"type": { "type": "string" }
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"name": "knowledge-query",
|
|
248
|
+
"displayName": "知識グラフ検索",
|
|
249
|
+
"description": "知識グラフから関連情報を検索します",
|
|
250
|
+
"when": "ユーザーが「知識グラフから検索して」「関連情報を探して」「保存した情報を調べて」と依頼した場合",
|
|
251
|
+
"examples": [
|
|
252
|
+
"〇〇に関連する情報を知識グラフから検索して",
|
|
253
|
+
"保存した情報を検索して",
|
|
254
|
+
"関連するエンティティを探して"
|
|
255
|
+
],
|
|
256
|
+
"tool": "katashiro_knowledge_query",
|
|
257
|
+
"parameters": {
|
|
258
|
+
"query": {
|
|
259
|
+
"type": "string",
|
|
260
|
+
"description": "検索クエリ"
|
|
261
|
+
},
|
|
262
|
+
"type": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"description": "ノードタイプでフィルタ"
|
|
265
|
+
},
|
|
266
|
+
"limit": {
|
|
267
|
+
"type": "number",
|
|
268
|
+
"description": "最大結果数",
|
|
269
|
+
"default": 10
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "read-feed",
|
|
275
|
+
"displayName": "RSSフィード読み込み",
|
|
276
|
+
"description": "RSS/Atomフィードを読み込んで記事を取得します",
|
|
277
|
+
"when": "ユーザーが「RSSフィードを読み込んで」「フィードを取得して」と依頼した場合",
|
|
278
|
+
"examples": [
|
|
279
|
+
"このRSSフィードを読み込んで",
|
|
280
|
+
"ブログの最新記事を取得して"
|
|
281
|
+
],
|
|
282
|
+
"tool": "katashiro_feed",
|
|
283
|
+
"parameters": {
|
|
284
|
+
"url": {
|
|
285
|
+
"type": "string",
|
|
286
|
+
"description": "フィードURL"
|
|
287
|
+
},
|
|
288
|
+
"maxItems": {
|
|
289
|
+
"type": "number",
|
|
290
|
+
"description": "最大取得件数",
|
|
291
|
+
"default": 20
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"name": "research-workflow",
|
|
297
|
+
"displayName": "調査ワークフロー",
|
|
298
|
+
"description": "検索→スクレイピング→分析→レポート生成の一連のワークフローを実行します",
|
|
299
|
+
"when": "ユーザーが「〜について調査してレポートにまとめて」「〜を調べて報告書を作成して」と依頼した場合",
|
|
300
|
+
"examples": [
|
|
301
|
+
"〇〇社について調査してレポートにまとめて",
|
|
302
|
+
"TypeScriptの最新動向を調べて報告書を作成して",
|
|
303
|
+
"競合分析してまとめて"
|
|
304
|
+
],
|
|
305
|
+
"workflow": [
|
|
306
|
+
{ "step": 1, "tool": "katashiro_search", "description": "関連情報を検索" },
|
|
307
|
+
{ "step": 2, "tool": "katashiro_scrape", "description": "上位結果のページを取得" },
|
|
308
|
+
{ "step": 3, "tool": "katashiro_analyze", "description": "取得内容を分析" },
|
|
309
|
+
{ "step": 4, "tool": "katashiro_extract_entities", "description": "エンティティを抽出" },
|
|
310
|
+
{ "step": 5, "tool": "katashiro_generate_report", "description": "レポートを生成" }
|
|
311
|
+
]
|
|
312
|
+
}
|
|
313
|
+
],
|
|
314
|
+
"mcpServer": {
|
|
315
|
+
"command": "npx",
|
|
316
|
+
"args": ["@nahisaho/katashiro-mcp-server"],
|
|
317
|
+
"env": {}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- 'katashiro/**'
|
|
8
|
+
pull_request:
|
|
9
|
+
branches: [main]
|
|
10
|
+
paths:
|
|
11
|
+
- 'katashiro/**'
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
defaults:
|
|
17
|
+
run:
|
|
18
|
+
working-directory: katashiro
|
|
19
|
+
|
|
20
|
+
strategy:
|
|
21
|
+
matrix:
|
|
22
|
+
node-version: [20.x, 22.x]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
|
|
27
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
28
|
+
uses: actions/setup-node@v4
|
|
29
|
+
with:
|
|
30
|
+
node-version: ${{ matrix.node-version }}
|
|
31
|
+
cache: 'npm'
|
|
32
|
+
cache-dependency-path: katashiro/package-lock.json
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: npm ci
|
|
36
|
+
|
|
37
|
+
- name: Lint
|
|
38
|
+
run: npm run lint
|
|
39
|
+
|
|
40
|
+
- name: Type check
|
|
41
|
+
run: npm run typecheck
|
|
42
|
+
|
|
43
|
+
- name: Build
|
|
44
|
+
run: npm run build
|
|
45
|
+
|
|
46
|
+
- name: Test
|
|
47
|
+
run: npm run test
|
|
48
|
+
|
|
49
|
+
coverage:
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
defaults:
|
|
52
|
+
run:
|
|
53
|
+
working-directory: katashiro
|
|
54
|
+
needs: build
|
|
55
|
+
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/checkout@v4
|
|
58
|
+
|
|
59
|
+
- name: Use Node.js 20.x
|
|
60
|
+
uses: actions/setup-node@v4
|
|
61
|
+
with:
|
|
62
|
+
node-version: 20.x
|
|
63
|
+
cache: 'npm'
|
|
64
|
+
cache-dependency-path: katashiro/package-lock.json
|
|
65
|
+
|
|
66
|
+
- name: Install dependencies
|
|
67
|
+
run: npm ci
|
|
68
|
+
|
|
69
|
+
- name: Build
|
|
70
|
+
run: npm run build
|
|
71
|
+
|
|
72
|
+
- name: Test with coverage
|
|
73
|
+
run: npm run test:coverage
|
|
74
|
+
|
|
75
|
+
- name: Upload coverage reports
|
|
76
|
+
uses: codecov/codecov-action@v4
|
|
77
|
+
with:
|
|
78
|
+
directory: katashiro/coverage
|
|
79
|
+
flags: katashiro
|
|
80
|
+
fail_ci_if_error: false
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# KATASHIRO - AI Coding Agent Guide
|
|
2
|
+
|
|
3
|
+
> **AI Coding Agent向け**: このファイルはAIエージェント(GitHub Copilot、Claude等)がKATASHIROサービスを自然言語で利用するためのガイドです。
|
|
4
|
+
|
|
5
|
+
## 🎯 KATASHIROでできること
|
|
6
|
+
|
|
7
|
+
KATASHIROは以下のタスクを自然言語で実行できます:
|
|
8
|
+
|
|
9
|
+
| やりたいこと | 自然言語での依頼例 |
|
|
10
|
+
|-------------|-------------------|
|
|
11
|
+
| **Web調査** | 「〜について調べて」「〜の最新情報を検索して」 |
|
|
12
|
+
| **Webページ取得** | 「このURLの内容を取得して」「〜のサイトをスクレイピングして」 |
|
|
13
|
+
| **テキスト分析** | 「この文章を分析して」「キーワードを抽出して」 |
|
|
14
|
+
| **エンティティ抽出** | 「人名・組織名を抽出して」「固有表現を見つけて」 |
|
|
15
|
+
| **レポート生成** | 「調査レポートを作成して」「分析結果をまとめて」 |
|
|
16
|
+
| **要約作成** | 「この文章を要約して」「3行でまとめて」 |
|
|
17
|
+
| **知識グラフ操作** | 「知識グラフに追加して」「関連情報を検索して」 |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🔧 MCPツール(自然言語で呼び出し可能)
|
|
22
|
+
|
|
23
|
+
### 情報収集ツール
|
|
24
|
+
|
|
25
|
+
| ツール | 自然言語での呼び出し例 |
|
|
26
|
+
|--------|----------------------|
|
|
27
|
+
| `katashiro_scrape` | 「https://example.com の内容を取得して」 |
|
|
28
|
+
| `katashiro_search` | 「TypeScript best practices について検索して」 |
|
|
29
|
+
| `katashiro_feed` | 「このRSSフィードを読み込んで」 |
|
|
30
|
+
|
|
31
|
+
### 分析ツール
|
|
32
|
+
|
|
33
|
+
| ツール | 自然言語での呼び出し例 |
|
|
34
|
+
|--------|----------------------|
|
|
35
|
+
| `katashiro_analyze` | 「この文章のキーワードと複雑度を分析して」 |
|
|
36
|
+
| `katashiro_extract_entities` | 「このテキストから人名と組織名を抽出して」 |
|
|
37
|
+
| `katashiro_topics` | 「これらの文書のトピックを分析して」 |
|
|
38
|
+
|
|
39
|
+
### 生成ツール
|
|
40
|
+
|
|
41
|
+
| ツール | 自然言語での呼び出し例 |
|
|
42
|
+
|--------|----------------------|
|
|
43
|
+
| `katashiro_generate_report` | 「調査結果からレポートを生成して」 |
|
|
44
|
+
| `katashiro_summarize` | 「この長文を300文字で要約して」 |
|
|
45
|
+
| `katashiro_citation` | 「APA形式で引用を生成して」 |
|
|
46
|
+
|
|
47
|
+
### 知識グラフツール
|
|
48
|
+
|
|
49
|
+
| ツール | 自然言語での呼び出し例 |
|
|
50
|
+
|--------|----------------------|
|
|
51
|
+
| `katashiro_knowledge_query` | 「知識グラフから〜に関連する情報を検索して」 |
|
|
52
|
+
| `katashiro_knowledge_add` | 「この情報を知識グラフに追加して」 |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 📝 ユースケース別ワークフロー
|
|
57
|
+
|
|
58
|
+
### 1. 競合調査レポート作成
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
ユーザー: 「〇〇社について競合調査して、レポートにまとめて」
|
|
62
|
+
|
|
63
|
+
AIエージェントの動作:
|
|
64
|
+
1. katashiro_search で「〇〇社」を検索
|
|
65
|
+
2. katashiro_scrape で上位結果のページを取得
|
|
66
|
+
3. katashiro_analyze でテキスト分析
|
|
67
|
+
4. katashiro_extract_entities で企業名・人名を抽出
|
|
68
|
+
5. katashiro_generate_report でレポート生成
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 2. 技術トレンド分析
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
ユーザー: 「2026年のAI技術トレンドを調べて分析して」
|
|
75
|
+
|
|
76
|
+
AIエージェントの動作:
|
|
77
|
+
1. katashiro_search で「AI trends 2026」を検索
|
|
78
|
+
2. katashiro_scrape で技術ブログを取得
|
|
79
|
+
3. katashiro_topics でトピック分析
|
|
80
|
+
4. katashiro_summarize で要点をまとめ
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 3. 論文・記事の要約
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
ユーザー: 「このURLの論文を要約して、重要なポイントを箇条書きにして」
|
|
87
|
+
|
|
88
|
+
AIエージェントの動作:
|
|
89
|
+
1. katashiro_scrape でページ内容を取得
|
|
90
|
+
2. katashiro_analyze で構造分析
|
|
91
|
+
3. katashiro_summarize で要約生成
|
|
92
|
+
4. katashiro_citation で引用情報を生成
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 4. 知識ベース構築
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
ユーザー: 「このプロジェクトの情報を知識グラフに登録して」
|
|
99
|
+
|
|
100
|
+
AIエージェントの動作:
|
|
101
|
+
1. katashiro_extract_entities でエンティティ抽出
|
|
102
|
+
2. katashiro_knowledge_add でノード追加
|
|
103
|
+
3. katashiro_knowledge_query で関連性確認
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 💡 自然言語プロンプト例
|
|
109
|
+
|
|
110
|
+
### 調査系
|
|
111
|
+
- 「〜について調べて」
|
|
112
|
+
- 「〜の最新ニュースを検索して」
|
|
113
|
+
- 「〜に関する情報を集めて」
|
|
114
|
+
- 「このURLの内容を取得して分析して」
|
|
115
|
+
|
|
116
|
+
### 分析系
|
|
117
|
+
- 「この文章を分析して」
|
|
118
|
+
- 「キーワードを抽出して」
|
|
119
|
+
- 「人名・組織名をリストアップして」
|
|
120
|
+
- 「トピックを分類して」
|
|
121
|
+
- 「感情分析して」
|
|
122
|
+
|
|
123
|
+
### 生成系
|
|
124
|
+
- 「レポートにまとめて」
|
|
125
|
+
- 「要約して」
|
|
126
|
+
- 「〜文字でまとめて」
|
|
127
|
+
- 「プレゼン資料を作って」
|
|
128
|
+
- 「引用を生成して」
|
|
129
|
+
|
|
130
|
+
### 知識グラフ系
|
|
131
|
+
- 「知識グラフに追加して」
|
|
132
|
+
- 「関連情報を検索して」
|
|
133
|
+
- 「この情報を保存して」
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 📦 npmパッケージ
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# オールインワン(推奨)
|
|
141
|
+
npm install @nahisaho/katashiro
|
|
142
|
+
|
|
143
|
+
# MCPサーバー
|
|
144
|
+
npm install @nahisaho/katashiro-mcp-server
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### VS Code MCP設定
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"mcp.servers": {
|
|
152
|
+
"katashiro": {
|
|
153
|
+
"command": "npx",
|
|
154
|
+
"args": ["@nahisaho/katashiro-mcp-server"]
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 🏗️ プロジェクト構造
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
katashiro/
|
|
166
|
+
├── packages/
|
|
167
|
+
│ ├── katashiro/ # @nahisaho/katashiro(オールインワン)
|
|
168
|
+
│ ├── core/ # @nahisaho/katashiro-core
|
|
169
|
+
│ ├── collector/ # @nahisaho/katashiro-collector
|
|
170
|
+
│ ├── analyzer/ # @nahisaho/katashiro-analyzer
|
|
171
|
+
│ ├── generator/ # @nahisaho/katashiro-generator
|
|
172
|
+
│ ├── knowledge/ # @nahisaho/katashiro-knowledge
|
|
173
|
+
│ ├── feedback/ # @nahisaho/katashiro-feedback
|
|
174
|
+
│ ├── mcp-server/ # @nahisaho/katashiro-mcp-server
|
|
175
|
+
│ └── vscode-extension/ # katashiro VS Code拡張
|
|
176
|
+
└── docs/
|
|
177
|
+
├── USER-GUIDE.md
|
|
178
|
+
└── USER-GUIDE.ja.md
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 🛠️ 開発コマンド
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npm install # 依存関係インストール
|
|
187
|
+
npm run build # 全パッケージビルド
|
|
188
|
+
npm run test # テスト実行(448テスト)
|
|
189
|
+
npm run lint # ESLint
|
|
190
|
+
npm run typecheck # TypeScript型チェック
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
**Project**: KATASHIRO
|
|
196
|
+
**npm**: @nahisaho/katashiro
|
|
197
|
+
**Last Updated**: 2026-01-10
|
|
198
|
+
**Version**: 0.1.0
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# KATASHIRO - Claude Code専用ガイド
|
|
2
|
+
|
|
3
|
+
> このファイルはClaude CodeがKATASHIROサービスを自然言語で利用するためのガイドです。
|
|
4
|
+
|
|
5
|
+
## 🎯 KATASHIROとは
|
|
6
|
+
|
|
7
|
+
KATASHIROは情報収集・分析・コンテンツ生成を行うMCPサーバーです。ユーザーから以下のような依頼があった場合、KATASHIROのツールを使用してください。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 📝 自然言語 → ツール対応表
|
|
12
|
+
|
|
13
|
+
### 「〜について調べて」「検索して」
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
katashiro_search を使用
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
例:
|
|
20
|
+
- 「TypeScriptのベストプラクティスについて調べて」
|
|
21
|
+
- 「2026年のAIトレンドを検索して」
|
|
22
|
+
- 「〇〇社の最新ニュースを調べて」
|
|
23
|
+
|
|
24
|
+
### 「このURLの内容を取得して」「スクレイピングして」
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
katashiro_scrape を使用
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
例:
|
|
31
|
+
- 「https://example.com の内容を取得して」
|
|
32
|
+
- 「このページの本文を抽出して」
|
|
33
|
+
|
|
34
|
+
### 「分析して」「キーワードを抽出して」
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
katashiro_analyze を使用
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
例:
|
|
41
|
+
- 「この文章を分析して」
|
|
42
|
+
- 「テキストの複雑度を調べて」
|
|
43
|
+
- 「重要なキーワードを抽出して」
|
|
44
|
+
|
|
45
|
+
### 「人名・組織名を抽出して」「固有表現を見つけて」
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
katashiro_extract_entities を使用
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
例:
|
|
52
|
+
- 「この記事に出てくる人名をリストアップして」
|
|
53
|
+
- 「組織名と地名を抽出して」
|
|
54
|
+
|
|
55
|
+
### 「レポートを作成して」「まとめて」
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
katashiro_generate_report を使用
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
例:
|
|
62
|
+
- 「調査結果をレポートにまとめて」
|
|
63
|
+
- 「分析結果からレポートを生成して」
|
|
64
|
+
|
|
65
|
+
### 「要約して」「〜文字でまとめて」
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
katashiro_summarize を使用
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
例:
|
|
72
|
+
- 「この長文を要約して」
|
|
73
|
+
- 「300文字以内でまとめて」
|
|
74
|
+
- 「3行で要点をまとめて」
|
|
75
|
+
|
|
76
|
+
### 「知識グラフに追加して」「保存して」
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
katashiro_knowledge_add を使用
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
例:
|
|
83
|
+
- 「この情報を知識グラフに登録して」
|
|
84
|
+
- 「エンティティを保存して」
|
|
85
|
+
|
|
86
|
+
### 「知識グラフから検索して」「関連情報を探して」
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
katashiro_knowledge_query を使用
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
例:
|
|
93
|
+
- 「〇〇に関連する情報を知識グラフから検索して」
|
|
94
|
+
- 「保存した情報を検索して」
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🔄 複合タスクのワークフロー
|
|
99
|
+
|
|
100
|
+
### 競合調査レポート
|
|
101
|
+
|
|
102
|
+
ユーザー: 「〇〇社について調査してレポートにまとめて」
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
1. katashiro_search("〇〇社 最新 ニュース")
|
|
106
|
+
2. katashiro_scrape(検索結果のURL)
|
|
107
|
+
3. katashiro_analyze(取得したテキスト)
|
|
108
|
+
4. katashiro_extract_entities(取得したテキスト)
|
|
109
|
+
5. katashiro_generate_report(分析結果)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 論文要約
|
|
113
|
+
|
|
114
|
+
ユーザー: 「このURLの論文を要約して」
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
1. katashiro_scrape(URL)
|
|
118
|
+
2. katashiro_analyze(取得したテキスト)
|
|
119
|
+
3. katashiro_summarize(取得したテキスト)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 技術調査と知識ベース構築
|
|
123
|
+
|
|
124
|
+
ユーザー: 「〜について調べて知識グラフに保存して」
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
1. katashiro_search(クエリ)
|
|
128
|
+
2. katashiro_scrape(検索結果)
|
|
129
|
+
3. katashiro_extract_entities(テキスト)
|
|
130
|
+
4. katashiro_knowledge_add(エンティティ)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 💻 コード例(TypeScript)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import {
|
|
139
|
+
WebScraper,
|
|
140
|
+
TextAnalyzer,
|
|
141
|
+
ReportGenerator,
|
|
142
|
+
KnowledgeGraph,
|
|
143
|
+
isOk
|
|
144
|
+
} from '@nahisaho/katashiro';
|
|
145
|
+
|
|
146
|
+
// Web調査 → 分析 → レポート生成
|
|
147
|
+
async function research(url: string) {
|
|
148
|
+
const scraper = new WebScraper();
|
|
149
|
+
const analyzer = new TextAnalyzer();
|
|
150
|
+
const generator = new ReportGenerator();
|
|
151
|
+
|
|
152
|
+
const page = await scraper.scrape(url);
|
|
153
|
+
if (isOk(page)) {
|
|
154
|
+
const analysis = await analyzer.analyze(page.value.text);
|
|
155
|
+
const report = await generator.generate({
|
|
156
|
+
title: '調査レポート',
|
|
157
|
+
sections: [{ heading: '分析結果', content: analysis.value.summary }]
|
|
158
|
+
});
|
|
159
|
+
return report;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 📦 インストール
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# オールインワン
|
|
170
|
+
npm install @nahisaho/katashiro
|
|
171
|
+
|
|
172
|
+
# MCPサーバー
|
|
173
|
+
npm install @nahisaho/katashiro-mcp-server
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## VS Code MCP設定
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"mcp.servers": {
|
|
181
|
+
"katashiro": {
|
|
182
|
+
"command": "npx",
|
|
183
|
+
"args": ["@nahisaho/katashiro-mcp-server"]
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 🔧 開発時の注意
|
|
192
|
+
|
|
193
|
+
### Result型パターン
|
|
194
|
+
```typescript
|
|
195
|
+
import { Result, ok, err, isOk, isErr } from '@nahisaho/katashiro';
|
|
196
|
+
|
|
197
|
+
const result = await scraper.scrape(url);
|
|
198
|
+
if (isOk(result)) {
|
|
199
|
+
// 成功時の処理
|
|
200
|
+
console.log(result.value);
|
|
201
|
+
} else {
|
|
202
|
+
// エラー時の処理
|
|
203
|
+
console.error(result.error);
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### パッケージ依存関係
|
|
208
|
+
```
|
|
209
|
+
@nahisaho/katashiro-core (依存なし)
|
|
210
|
+
↓
|
|
211
|
+
collector, analyzer, generator, knowledge, feedback (coreに依存)
|
|
212
|
+
↓
|
|
213
|
+
@nahisaho/katashiro (オールインワン - 全てを含む)
|
|
214
|
+
@nahisaho/katashiro-mcp-server (全パッケージを使用)
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
**Project**: KATASHIRO
|
|
220
|
+
**npm**: @nahisaho/katashiro
|
|
221
|
+
**Updated**: 2026-01-10
|
package/dist/analyzer.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,cAAc,+BAA+B,CAAC"}
|
package/dist/core.d.ts
ADDED
package/dist/core.js
ADDED
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,cAAc,0BAA0B,CAAC"}
|
package/dist/feedback.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,cAAc,+BAA+B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * as core from '@nahisaho/katashiro-core';
|
|
2
|
+
export { Result, ok, err, isOk, isErr, Logger, LogLevel, generateId } from '@nahisaho/katashiro-core';
|
|
3
|
+
export * as collector from '@nahisaho/katashiro-collector';
|
|
4
|
+
export { WebScraper, APIClient, FeedReader, WebSearchClient, MediaExtractor, YouTubeTranscript } from '@nahisaho/katashiro-collector';
|
|
5
|
+
export * as analyzer from '@nahisaho/katashiro-analyzer';
|
|
6
|
+
export { TextAnalyzer, EntityExtractor, TopicModeler, RelationAnalyzer, QualityScorer, StructureAnalyzer } from '@nahisaho/katashiro-analyzer';
|
|
7
|
+
export * as generator from '@nahisaho/katashiro-generator';
|
|
8
|
+
export { ReportGenerator, SummaryGenerator, PresentationGenerator, CitationGenerator, TemplateEngine, ExportService } from '@nahisaho/katashiro-generator';
|
|
9
|
+
export * as knowledge from '@nahisaho/katashiro-knowledge';
|
|
10
|
+
export { KnowledgeGraph, GraphQuery, GraphPersistence, GraphVisualization, GraphSync } from '@nahisaho/katashiro-knowledge';
|
|
11
|
+
export * as feedback from '@nahisaho/katashiro-feedback';
|
|
12
|
+
export { FeedbackCollector, FeedbackStorage, LearningEngine, PatternDetector, AdaptiveRecommender } from '@nahisaho/katashiro-feedback';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,gEAAgE;AAEhE,yCAAyC;AACzC,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtG,uCAAuC;AACvC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEtI,6CAA6C;AAC7C,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE/I,gDAAgD;AAChD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE3J,yCAAyC;AACzC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE5H,wCAAwC;AACxC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,cAAc,+BAA+B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nahisaho/katashiro",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "KATASHIRO - VS Code Agent Mode向け情報収集・分析・生成システム(オールインワンパッケージ)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"src",
|
|
11
|
+
"scripts",
|
|
12
|
+
".github",
|
|
13
|
+
"AGENTS.md",
|
|
14
|
+
"CLAUDE.md"
|
|
15
|
+
],
|
|
8
16
|
"exports": {
|
|
9
17
|
".": {
|
|
10
18
|
"types": "./dist/index.d.ts",
|
|
@@ -37,7 +45,8 @@
|
|
|
37
45
|
},
|
|
38
46
|
"scripts": {
|
|
39
47
|
"build": "tsc",
|
|
40
|
-
"test": "echo \"No tests for meta package\""
|
|
48
|
+
"test": "echo \"No tests for meta package\"",
|
|
49
|
+
"postinstall": "node scripts/postinstall.js"
|
|
41
50
|
},
|
|
42
51
|
"keywords": [
|
|
43
52
|
"katashiro",
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* postinstall script - AGENTS.md, CLAUDE.md, .github をプロジェクトルートにコピー
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { promises as fs } from 'fs';
|
|
8
|
+
import { dirname, join, resolve } from 'path';
|
|
9
|
+
import { fileURLToPath } from 'url';
|
|
10
|
+
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = dirname(__filename);
|
|
13
|
+
|
|
14
|
+
// パッケージのルートディレクトリ
|
|
15
|
+
const packageRoot = resolve(__dirname, '..');
|
|
16
|
+
|
|
17
|
+
// インストール先のプロジェクトルート(node_modulesの2つ上)
|
|
18
|
+
const projectRoot = resolve(packageRoot, '..', '..', '..');
|
|
19
|
+
|
|
20
|
+
// コピーするファイル/ディレクトリ
|
|
21
|
+
const filesToCopy = [
|
|
22
|
+
'AGENTS.md',
|
|
23
|
+
'CLAUDE.md',
|
|
24
|
+
'.github/copilot-skills.json',
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
async function copyFile(src, dest) {
|
|
28
|
+
try {
|
|
29
|
+
// ディレクトリが存在しない場合は作成
|
|
30
|
+
const destDir = dirname(dest);
|
|
31
|
+
await fs.mkdir(destDir, { recursive: true });
|
|
32
|
+
|
|
33
|
+
// ファイルが存在しない場合のみコピー(既存ファイルは上書きしない)
|
|
34
|
+
try {
|
|
35
|
+
await fs.access(dest);
|
|
36
|
+
console.log(` [skip] ${dest} already exists`);
|
|
37
|
+
} catch {
|
|
38
|
+
await fs.copyFile(src, dest);
|
|
39
|
+
console.log(` [copy] ${dest}`);
|
|
40
|
+
}
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.error(` [error] Failed to copy ${src}: ${error.message}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function main() {
|
|
47
|
+
// npm install が実行されているか確認(CI環境やパッケージ開発時はスキップ)
|
|
48
|
+
const isNpmInstall = process.env.npm_lifecycle_event === 'postinstall';
|
|
49
|
+
const isCi = process.env.CI === 'true';
|
|
50
|
+
|
|
51
|
+
// パッケージ自体の開発時はスキップ
|
|
52
|
+
const isPackageDev = projectRoot.includes('packages/katashiro');
|
|
53
|
+
|
|
54
|
+
if (!isNpmInstall || isCi || isPackageDev) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
console.log('\n📦 KATASHIRO: Setting up agent configuration files...\n');
|
|
59
|
+
|
|
60
|
+
for (const file of filesToCopy) {
|
|
61
|
+
const src = join(packageRoot, file);
|
|
62
|
+
const dest = join(projectRoot, file);
|
|
63
|
+
await copyFile(src, dest);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
console.log('\n✅ KATASHIRO setup complete!\n');
|
|
67
|
+
console.log(' - AGENTS.md: AI agent instructions');
|
|
68
|
+
console.log(' - CLAUDE.md: Claude-specific guide');
|
|
69
|
+
console.log(' - .github/copilot-skills.json: VS Code Copilot skills\n');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
main().catch(console.error);
|
package/tsconfig.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "NodeNext",
|
|
5
|
-
"moduleResolution": "NodeNext",
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"declarationMap": true,
|
|
8
|
-
"sourceMap": true,
|
|
9
|
-
"outDir": "./dist",
|
|
10
|
-
"rootDir": "./src",
|
|
11
|
-
"strict": true,
|
|
12
|
-
"esModuleInterop": true,
|
|
13
|
-
"skipLibCheck": true,
|
|
14
|
-
"forceConsistentCasingInFileNames": true
|
|
15
|
-
},
|
|
16
|
-
"include": ["src/**/*"],
|
|
17
|
-
"exclude": ["node_modules", "dist"]
|
|
18
|
-
}
|