astro-dev-mcp 0.5.7 → 0.7.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/dist/index.js CHANGED
@@ -6,6 +6,8 @@ import { generateComponent } from "./tools/generateComponent.js";
6
6
  import { generateSection } from "./tools/generateSection.js";
7
7
  import { generatePage } from "./tools/generatePage.js";
8
8
  import { generateSchema } from "./tools/generateSchema.js";
9
+ import { getProjectContext } from "./tools/getProjectContext.js";
10
+ import { getComponentInterface } from "./tools/getComponentInterface.js";
9
11
  /**
10
12
  * Astro Generator MCP Server
11
13
  * データ駆動型Astroプロジェクト生成ツール
@@ -39,22 +41,35 @@ class AstroGeneratorServer {
39
41
  tools: [
40
42
  {
41
43
  name: "generate-component",
42
- description: "Astroコンポーネントを生成します。Props定義、デザイン要件、命名規則に基づいて、コンポーネントファイルとSCSSファイルを出力します。",
44
+ description: `Astroコンポーネントを生成し、ファイルシステムに書き込みます。
45
+
46
+ 【重要】Astroコンポーネントを新規作成する場合は、独自にコードを書かずに必ずこのツールを使用してください。
47
+
48
+ 出力先:
49
+ - src/components/{componentName}.astro
50
+ - src/scss/components/_c_{snake_case_name}.scss
51
+
52
+ 使用例:
53
+ {
54
+ "componentName": "ArticleCard",
55
+ "props": { "title": "string", "description": "string", "image": "string" },
56
+ "projectRoot": "/path/to/project"
57
+ }`,
43
58
  inputSchema: {
44
59
  type: "object",
45
60
  properties: {
46
61
  componentName: {
47
62
  type: "string",
48
- description: "コンポーネント名(例: ArticleCard, HeroSection)",
63
+ description: "コンポーネント名(PascalCase、例: ArticleCard, HeroSection)",
49
64
  },
50
65
  props: {
51
66
  type: "object",
52
- description: "Props定義(TypeScriptインターフェース形式)",
67
+ description: "Props定義(TypeScriptインターフェース形式)。キーがプロパティ名、値が型(string/number/boolean/array/object)",
53
68
  additionalProperties: true,
54
69
  },
55
70
  design: {
56
71
  type: "object",
57
- description: "デザイン要件(色、タイポグラフィ、レイアウト)",
72
+ description: "デザイン要件(任意)",
58
73
  properties: {
59
74
  colors: {
60
75
  type: "object",
@@ -66,32 +81,54 @@ class AstroGeneratorServer {
66
81
  },
67
82
  layout: {
68
83
  type: "string",
69
- description: "レイアウトタイプ(grid/flex/block)",
84
+ description: "レイアウトタイプ",
85
+ enum: ["grid", "flex", "block"],
70
86
  },
71
87
  },
72
88
  },
73
89
  accessibility: {
74
90
  type: "boolean",
75
- description: "アクセシビリティ対応を含めるか(デフォルト: true)",
91
+ description: "アクセシビリティ対応を含めるか",
76
92
  default: true,
77
93
  },
94
+ projectRoot: {
95
+ type: "string",
96
+ description: "プロジェクトルートパス(デフォルト: カレントディレクトリ)",
97
+ },
78
98
  },
79
99
  required: ["componentName", "props"],
80
100
  },
81
101
  },
82
102
  {
83
103
  name: "generate-section",
84
- description: "ページセクション(_parts配下)を生成します。プロンプトまたは構造化データから、柔軟なUIパターンで再利用可能なセクションコンポーネントを作成します。",
104
+ description: `ページセクション(_parts配下)を生成し、ファイルシステムに書き込みます。
105
+
106
+ 【重要】Astroページのセクションを作成する場合は、独自にコードを書かずに必ずこのツールを使用してください。
107
+
108
+ 出力先:
109
+ - src/pages/_parts/_{pageName}/_{sectionType}.astro
110
+ - src/scss/pages/_{pageName}.scss(既存ファイルには追記)
111
+
112
+ 自動更新:
113
+ - src/js/app.js(UIパターンに必要なスクリプトを自動登録)
114
+
115
+ 使用例:
116
+ {
117
+ "pageName": "about",
118
+ "sectionType": "features",
119
+ "uiPattern": "grid",
120
+ "projectRoot": "/path/to/project"
121
+ }`,
85
122
  inputSchema: {
86
123
  type: "object",
87
124
  properties: {
88
125
  prompt: {
89
126
  type: "string",
90
- description: "セクション生成の意図を記述(例: 記事一覧をカード形式で表示、Q&Aをアコーディオンで)",
127
+ description: "セクション生成の意図を自然言語で記述(例: 記事一覧をカード形式で表示、Q&Aをアコーディオンで)。sectionTypeとuiPatternを自動推論します。",
91
128
  },
92
129
  sectionType: {
93
130
  type: "string",
94
- description: "セクション種類(hero/articles/categories/qa/features/tech等)",
131
+ description: "セクション種類。promptを指定しない場合は必須。",
95
132
  enum: [
96
133
  "hero",
97
134
  "articles",
@@ -108,7 +145,7 @@ class AstroGeneratorServer {
108
145
  },
109
146
  uiPattern: {
110
147
  type: "string",
111
- description: "UIパターン(tab/accordion/grid/carousel/list/modal)",
148
+ description: "UIパターン。指定しない場合はsectionTypeに応じたデフォルトを使用。",
112
149
  enum: ["tab", "accordion", "grid", "carousel", "list", "modal"],
113
150
  },
114
151
  pageName: {
@@ -117,23 +154,49 @@ class AstroGeneratorServer {
117
154
  },
118
155
  content: {
119
156
  type: "object",
120
- description: "セクションのコンテンツデータ",
157
+ description: "セクションのコンテンツデータ(任意)",
121
158
  additionalProperties: true,
122
159
  },
123
160
  components: {
124
161
  type: "array",
125
- description: "使用する子コンポーネント名のリスト",
162
+ description: "使用する子コンポーネント名のリスト(任意)",
126
163
  items: {
127
164
  type: "string",
128
165
  },
129
166
  },
167
+ projectRoot: {
168
+ type: "string",
169
+ description: "プロジェクトルートパス(デフォルト: カレントディレクトリ)",
170
+ },
130
171
  },
131
172
  required: ["pageName"],
132
173
  },
133
174
  },
134
175
  {
135
176
  name: "generate-page",
136
- description: "完全なAstroページを生成します。ページ構造、メタデータ、各セクションのデータから、index.astroファイルを作成します。プロンプトでページタイプ(トップ/下層)を自動判定し、下層ページの場合はBreadcrumbsとLowerTitleコンポーネントを自動追加します。オプションでサイト全体の設定(Common.astro、_variables.scss)も更新可能です。",
177
+ description: `完全なAstroページを生成し、ファイルシステムに書き込みます。
178
+
179
+ 【重要】Astroページを新規作成する場合は、独自にコードを書かずに必ずこのツールを使用してください。
180
+
181
+ 出力先:
182
+ - src/pages/{pageName}/index.astro
183
+
184
+ 自動更新(オプション指定時):
185
+ - src/layouts/Common.astro(siteConfig指定時)
186
+ - src/scss/abstracts/_variables.scss(scssConfig指定時)
187
+
188
+ 機能:
189
+ - promptでページタイプ(トップ/下層)を自動判定
190
+ - 下層ページの場合はBreadcrumbsとLowerTitleを自動追加
191
+
192
+ 使用例:
193
+ {
194
+ "pageName": "about",
195
+ "prompt": "会社概要の下層ページ",
196
+ "pageData": { "head": { "slug": "about", "ttl": "会社概要", "description": "...", "url": "/about/" }, "contents": {} },
197
+ "sections": ["hero", "company"],
198
+ "projectRoot": "/path/to/project"
199
+ }`,
137
200
  inputSchema: {
138
201
  type: "object",
139
202
  properties: {
@@ -229,7 +292,18 @@ class AstroGeneratorServer {
229
292
  },
230
293
  {
231
294
  name: "generate-schema",
232
- description: "デザインデータやコンテンツ資料からTypeScript型定義とデータ構造を生成します。Excel、Markdown、JSON形式に対応。",
295
+ description: `デザインデータやコンテンツ資料からTypeScript型定義とデータ構造を生成します。
296
+
297
+ 【重要】データ構造の型定義が必要な場合は、独自に型を書かずにこのツールを使用してください。
298
+
299
+ 対応形式: Excel、Markdown、JSON、テキスト
300
+
301
+ 使用例:
302
+ {
303
+ "sourceType": "json",
304
+ "sourceData": "{ \"title\": \"記事タイトル\", \"items\": [...] }",
305
+ "schemaName": "ArticleData"
306
+ }`,
233
307
  inputSchema: {
234
308
  type: "object",
235
309
  properties: {
@@ -250,6 +324,54 @@ class AstroGeneratorServer {
250
324
  required: ["sourceType", "sourceData", "schemaName"],
251
325
  },
252
326
  },
327
+ {
328
+ name: "get-project-context",
329
+ description: `プロジェクトのコーディング規約、ディレクトリ構造の役割、使用可能な技術スタック、およびAIが守るべき制約事項を取得します。タスクを開始する前に必ず一度実行してください。
330
+
331
+ 取得内容:
332
+ - コーディング規約(ai-context.md または .cursorrules から読み込み)
333
+ - プロジェクト構造(src/配下の主要ディレクトリ一覧)
334
+ - SCSS変数の要約(カラー、レイアウト、フォントサイズ)
335
+
336
+ 使用例:
337
+ {
338
+ "projectRoot": "/path/to/project"
339
+ }`,
340
+ inputSchema: {
341
+ type: "object",
342
+ properties: {
343
+ projectRoot: {
344
+ type: "string",
345
+ description: "プロジェクトルートパス(デフォルト: カレントディレクトリ)",
346
+ },
347
+ },
348
+ required: [],
349
+ },
350
+ },
351
+ {
352
+ name: "get-component-interface",
353
+ description: `コンポーネントのProps型定義を取得します。ファイル全体を読み込まず、interfaceのみを返すためトークン効率が高いです。
354
+
355
+ componentNameを指定すると単一コンポーネント、省略すると全コンポーネントの一覧を返します。
356
+
357
+ 使用例:
358
+ - 単一: { "componentName": "Picture", "projectRoot": "/path/to/project" }
359
+ - 一覧: { "projectRoot": "/path/to/project" }`,
360
+ inputSchema: {
361
+ type: "object",
362
+ properties: {
363
+ componentName: {
364
+ type: "string",
365
+ description: "コンポーネント名(例: Picture, Breadcrumbs)。省略で全コンポーネント一覧",
366
+ },
367
+ projectRoot: {
368
+ type: "string",
369
+ description: "プロジェクトルートパス(デフォルト: カレントディレクトリ)",
370
+ },
371
+ },
372
+ required: [],
373
+ },
374
+ },
253
375
  ],
254
376
  }));
255
377
  // ツール実行ハンドラー
@@ -264,6 +386,10 @@ class AstroGeneratorServer {
264
386
  return await generatePage(request.params.arguments);
265
387
  case "generate-schema":
266
388
  return await generateSchema(request.params.arguments);
389
+ case "get-project-context":
390
+ return await getProjectContext(request.params.arguments);
391
+ case "get-component-interface":
392
+ return await getComponentInterface(request.params.arguments);
267
393
  default:
268
394
  throw new Error(`Unknown tool: ${request.params.name}`);
269
395
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -44,13 +44,17 @@ function generateImports(pageName, sections, isLowerPage) {
44
44
  return imports.join("\n");
45
45
  }
46
46
  function generatePageObject(pageData) {
47
- return `const page = ${JSON.stringify(pageData, null, 2)};`;
47
+ const json = JSON.stringify(pageData, null, 2);
48
+ // キーのクォートを除去してJSオブジェクトリテラル形式に変換
49
+ // trailing commaはPrettierに任せる
50
+ const jsLiteral = json.replace(/"([a-zA-Z_$][a-zA-Z0-9_$]*)":/g, "$1:");
51
+ return `const page = ${jsLiteral};`;
48
52
  }
49
53
  function generateSectionComponents(pageName, sections) {
50
54
  return sections
51
55
  .map((section, index) => {
52
56
  const componentName = toPascalCase(section) + "Section";
53
- const props = `${section}={page.contents.${section}}`;
57
+ const props = `data={page.contents.${section}}`;
54
58
  const additionalProps = section === "articles" || section === "videos" ? " imgPath={imgPath}" : "";
55
59
  return ` <section id="${section}">
56
60
  <${componentName} ${props}${additionalProps} />
@@ -1 +1 @@
1
- {"version":3,"file":"pageTemplates.js","sourceRoot":"","sources":["../../src/templates/pageTemplates.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACrD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAEjD,uCAAuC;IACvC,MAAM,WAAW,GAAG,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;IAE1D,WAAW;IACX,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEjE,eAAe;IACf,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEhD,iBAAiB;IACjB,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE,OAAO;EACP,OAAO;;wBAEe,QAAQ;;EAE9B,UAAU;;;;;;EAMV,WAAW,CAAC,CAAC,CAAC,sFAAsF,CAAC,CAAC,CAAC,EAAE;kBACzF,QAAQ;EACxB,iBAAiB;;;CAGlB,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CACtB,QAAgB,EAChB,QAAkB,EAClB,WAAoB;IAEpB,MAAM,OAAO,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAEjE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa;IACb,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QACxD,OAAO,CAAC,IAAI,CACV,UAAU,aAAa,0BAA0B,QAAQ,KAAK,OAAO,UAAU,CAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAa;IACvC,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAgB,EAChB,QAAkB;IAElB,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QACxD,MAAM,KAAK,GAAG,GAAG,OAAO,mBAAmB,OAAO,GAAG,CAAC;QACtD,MAAM,eAAe,GACnB,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,OAAO,oBAAoB,OAAO;SAC/B,aAAa,IAAI,KAAK,GAAG,eAAe;eAClC,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG;SACP,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"pageTemplates.js","sourceRoot":"","sources":["../../src/templates/pageTemplates.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACrD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAEjD,uCAAuC;IACvC,MAAM,WAAW,GAAG,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;IAE1D,WAAW;IACX,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEjE,eAAe;IACf,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEhD,iBAAiB;IACjB,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE,OAAO;EACP,OAAO;;wBAEe,QAAQ;;EAE9B,UAAU;;;;;;EAMV,WAAW,CAAC,CAAC,CAAC,sFAAsF,CAAC,CAAC,CAAC,EAAE;kBACzF,QAAQ;EACxB,iBAAiB;;;CAGlB,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CACtB,QAAgB,EAChB,QAAkB,EAClB,WAAoB;IAEpB,MAAM,OAAO,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAEjE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa;IACb,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QACxD,OAAO,CAAC,IAAI,CACV,UAAU,aAAa,0BAA0B,QAAQ,KAAK,OAAO,UAAU,CAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAa;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,gCAAgC;IAChC,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACxE,OAAO,gBAAgB,SAAS,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAgB,EAChB,QAAkB;IAElB,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QACxD,MAAM,KAAK,GAAG,uBAAuB,OAAO,GAAG,CAAC;QAChD,MAAM,eAAe,GACnB,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,OAAO,oBAAoB,OAAO;SAC/B,aAAa,IAAI,KAAK,GAAG,eAAe;eAClC,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG;SACP,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
@@ -75,22 +75,22 @@ function generateHeroSection(content, components) {
75
75
  * ヒーローセクションコンポーネント
76
76
  */
77
77
  interface Props {
78
- hero: {
78
+ data: {
79
79
  ttl: string;
80
80
  subtitle?: string;
81
81
  desc?: string;
82
82
  };
83
83
  }
84
84
 
85
- const { hero } = Astro.props;
85
+ const { data } = Astro.props;
86
86
  ---
87
87
 
88
88
  <section class="hero_section">
89
89
  <div class="contentInner">
90
90
  <div class="hero_content">
91
- <h1 class="hero_ttl" set:html={hero.ttl} />
92
- {hero.subtitle && <p class="hero_subtitle" set:html={hero.subtitle} />}
93
- {hero.desc && <p class="hero_desc" set:html={hero.desc} />}
91
+ <h1 class="hero_ttl" set:html={data.ttl} />
92
+ {data.subtitle && <p class="hero_subtitle" set:html={data.subtitle} />}
93
+ {data.desc && <p class="hero_desc" set:html={data.desc} />}
94
94
  </div>
95
95
  </div>
96
96
  </section>
@@ -102,20 +102,20 @@ function generateFeaturesSection(content, components) {
102
102
  * 特徴セクションコンポーネント
103
103
  */
104
104
  interface Props {
105
- features: {
105
+ data: {
106
106
  ttl: string;
107
107
  items: string[];
108
108
  };
109
109
  }
110
110
 
111
- const { features } = Astro.props;
111
+ const { data } = Astro.props;
112
112
  ---
113
113
 
114
114
  <section class="features_section">
115
115
  <div class="contentInner">
116
- <h2 class="section_ttl" set:html={features.ttl} />
116
+ <h2 class="section_ttl" set:html={data.ttl} />
117
117
  <ul class="feature_list">
118
- {features.items.map((item) => (
118
+ {data.items.map((item) => (
119
119
  <li class="feature_item" set:html={item} />
120
120
  ))}
121
121
  </ul>
@@ -129,7 +129,7 @@ function generateTechSection(content, components) {
129
129
  * 技術スタックセクションコンポーネント
130
130
  */
131
131
  interface Props {
132
- tech: {
132
+ data: {
133
133
  ttl: string;
134
134
  desc?: string;
135
135
  items: {
@@ -139,16 +139,16 @@ interface Props {
139
139
  };
140
140
  }
141
141
 
142
- const { tech } = Astro.props;
142
+ const { data } = Astro.props;
143
143
  ---
144
144
 
145
145
  <section class="tech_section">
146
146
  <div class="contentInner">
147
- <h2 class="section_ttl" set:html={tech.ttl} />
148
- {tech.desc && <p class="section_desc" set:html={tech.desc} />}
147
+ <h2 class="section_ttl" set:html={data.ttl} />
148
+ {data.desc && <p class="section_desc" set:html={data.desc} />}
149
149
  <ul class="tech_list">
150
150
  {
151
- tech.items.map((item) => (
151
+ data.items.map((item) => (
152
152
  <li class="tech_item">
153
153
  <h3 class="tech_name">{item.name}</h3>
154
154
  <p class="tech_desc" set:html={item.desc} />
@@ -166,19 +166,19 @@ function generateConceptSection(content, components) {
166
166
  * コンセプトセクションコンポーネント
167
167
  */
168
168
  interface Props {
169
- concept: {
169
+ data: {
170
170
  ttl: string;
171
171
  desc: string;
172
172
  };
173
173
  }
174
174
 
175
- const { concept } = Astro.props;
175
+ const { data } = Astro.props;
176
176
  ---
177
177
 
178
178
  <section class="concept_section">
179
179
  <div class="contentInner">
180
- <h2 class="section_ttl" set:html={concept.ttl} />
181
- <p class="section_desc" set:html={concept.desc} />
180
+ <h2 class="section_ttl" set:html={data.ttl} />
181
+ <p class="section_desc" set:html={data.desc} />
182
182
  </div>
183
183
  </section>
184
184
  `;
@@ -189,18 +189,18 @@ function generateCustomSection(type, content, components) {
189
189
  * ${type} セクションコンポーネント
190
190
  */
191
191
  interface Props {
192
- ${type}: {
192
+ data: {
193
193
  ttl: string;
194
194
  items?: any[];
195
195
  };
196
196
  }
197
197
 
198
- const { ${type} } = Astro.props;
198
+ const { data } = Astro.props;
199
199
  ---
200
200
 
201
201
  <section class="${type}_section">
202
202
  <div class="contentInner">
203
- <h2 class="section_ttl" set:html={${type}.ttl} />
203
+ <h2 class="section_ttl" set:html={data.ttl} />
204
204
  {/* カスタムコンテンツをここに追加 */}
205
205
  </div>
206
206
  </section>
@@ -1 +1 @@
1
- {"version":3,"file":"sectionTemplates.js","sourceRoot":"","sources":["../../src/templates/sectionTemplates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sectionTemplates.js","sourceRoot":"","sources":["../../src/templates/sectionTemplates.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export function generateUIPattern(config) {
20
20
  case 'modal':
21
21
  return generateModalUI(config);
22
22
  default:
23
- throw new Error(`Unknown UI pattern: ${config.pattern}`);
23
+ return generateFallbackBlock(config);
24
24
  }
25
25
  }
26
26
  /**
@@ -332,4 +332,79 @@ const { data, imgPath = '' } = Astro.props;
332
332
  </section>
333
333
  `;
334
334
  }
335
+ /**
336
+ * フォールバックブロック生成
337
+ * サポート外のUIパターンが指定された場合、contentデータからinterfaceを推論し
338
+ * section > .contentInner の外枠を保証した上で中身はAIに委ねる
339
+ */
340
+ function generateFallbackBlock(config) {
341
+ const { data } = config;
342
+ const propsInterface = inferInterface(data);
343
+ const hasImg = Object.keys(data).some((k) => k.includes('img') || k === 'src');
344
+ const importLine = hasImg
345
+ ? 'import Picture from "@/components/Picture.astro";\n\n'
346
+ : '';
347
+ return `---
348
+ ${importLine}/**
349
+ * カスタムセクション
350
+ * UIパターン: ${config.pattern}
351
+ * デザインに合わせてコンテンツ部分を実装してください
352
+ */
353
+ interface Props {
354
+ data: {
355
+ ${propsInterface}
356
+ };${hasImg ? '\n\timgPath?: string;' : ''}
357
+ }
358
+
359
+ const { data${hasImg ? ', imgPath = ""' : ''} } = Astro.props;
360
+ ---
361
+
362
+ <section class="${config.pattern}_section">
363
+ <div class="contentInner">
364
+ {/* TODO: デザインに合わせてコンテンツを実装 */}
365
+ {/* data の構造は上記 Props interface を参照 */}
366
+ </div>
367
+ </section>
368
+ `;
369
+ }
370
+ /**
371
+ * contentデータからTypeScript interfaceのプロパティ定義を推論
372
+ */
373
+ function inferInterface(data, indent = '\t\t') {
374
+ return Object.entries(data)
375
+ .map(([key, value]) => {
376
+ const type = inferType(value);
377
+ return `${indent}${key}: ${type};`;
378
+ })
379
+ .join('\n');
380
+ }
381
+ function inferType(value) {
382
+ if (value === null || value === undefined)
383
+ return 'any';
384
+ if (typeof value === 'string')
385
+ return 'string';
386
+ if (typeof value === 'number')
387
+ return 'number';
388
+ if (typeof value === 'boolean')
389
+ return 'boolean';
390
+ if (Array.isArray(value)) {
391
+ if (value.length === 0)
392
+ return 'any[]';
393
+ const first = value[0];
394
+ if (typeof first === 'object' && first !== null) {
395
+ const itemProps = Object.entries(first)
396
+ .map(([k, v]) => `\t\t\t${k}: ${inferType(v)};`)
397
+ .join('\n');
398
+ return `{\n${itemProps}\n\t\t}[]`;
399
+ }
400
+ return `${inferType(first)}[]`;
401
+ }
402
+ if (typeof value === 'object') {
403
+ const objProps = Object.entries(value)
404
+ .map(([k, v]) => `\t\t\t${k}: ${inferType(v)};`)
405
+ .join('\n');
406
+ return `{\n${objProps}\n\t\t}`;
407
+ }
408
+ return 'any';
409
+ }
335
410
  //# sourceMappingURL=uiPatterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uiPatterns.js","sourceRoot":"","sources":["../../src/templates/uiPatterns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACxD,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,KAAK;YACT,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9B,KAAK,WAAW;YACf,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,MAAM;YACV,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,UAAU;YACd,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM;YACV,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,OAAO;YACX,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QAChC;YACC,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAwB;IAC9C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CP,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAuB;IACnD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAErC,OAAO;;;;;;;;;;;;;;;;;;;;;0CAqBkC,SAAS;cACrC,SAAS;;;;;;;;;;;;;;CActB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAuB;IAC9C,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjE,OAAO;;;;;;;;;KASH,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;8EAa0C,OAAO,gBAAgB,GAAG;;;;QAKjG,QAAQ;QACP,CAAC,CAAC;;;;;;OAMH;QACC,CAAC,CAAC,EACJ;;;;;;;;;;;CAWL,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAuB;IAClD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAErC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;uDAyB+C,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;CAwB9D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAwB;IAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BP,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAwB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DP,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"uiPatterns.js","sourceRoot":"","sources":["../../src/templates/uiPatterns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateComponent.d.ts","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAqChD"}
1
+ {"version":3,"file":"generateComponent.d.ts","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAiEhD"}
@@ -1,12 +1,16 @@
1
1
  import { generateAstroComponent } from "../generators/astroGenerator.js";
2
2
  import { generateScss } from "../generators/scssGenerator.js";
3
3
  import { formatCode } from "../utils/formatter.js";
4
+ import { writeFileSync, mkdirSync } from "fs";
5
+ import { resolve, dirname } from "path";
6
+ import { getGenerationContext } from "../utils/projectContext.js";
4
7
  /**
5
8
  * Astroコンポーネント生成ツール
6
9
  */
7
10
  export async function generateComponent(args) {
8
- const { componentName, props, design = {}, accessibility = true, } = args;
11
+ const { componentName, props, design = {}, accessibility = true, projectRoot = process.cwd(), } = args;
9
12
  try {
13
+ const writeLogs = [];
10
14
  // 1. Astroコンポーネント生成
11
15
  const astroCode = await generateAstroComponent({
12
16
  name: componentName,
@@ -21,11 +25,28 @@ export async function generateComponent(args) {
21
25
  // 3. コード整形
22
26
  const formattedAstro = await formatCode(astroCode, "astro");
23
27
  const formattedScss = await formatCode(scssCode, "scss");
28
+ // 4. ファイルパス解決
29
+ const astroPath = resolve(projectRoot, `src/components/${componentName}.astro`);
30
+ const scssPath = resolve(projectRoot, `src/scss/components/_c_${toSnakeCase(componentName)}.scss`);
31
+ // 5. ディレクトリ作成 & ファイル書き込み
32
+ try {
33
+ // Astroコンポーネント
34
+ mkdirSync(dirname(astroPath), { recursive: true });
35
+ writeFileSync(astroPath, formattedAstro, "utf-8");
36
+ writeLogs.push(`✅ ${astroPath}`);
37
+ // SCSSファイル
38
+ mkdirSync(dirname(scssPath), { recursive: true });
39
+ writeFileSync(scssPath, formattedScss, "utf-8");
40
+ writeLogs.push(`✅ ${scssPath}`);
41
+ }
42
+ catch (writeError) {
43
+ writeLogs.push(`❌ ファイル書き込みエラー: ${writeError}`);
44
+ }
24
45
  return {
25
46
  content: [
26
47
  {
27
48
  type: "text",
28
- text: `✅ コンポーネント「${componentName}」を生成しました\n\n## Astroコンポーネント\n\`\`\`astro\n${formattedAstro}\n\`\`\`\n\n## SCSS\n\`\`\`scss\n${formattedScss}\n\`\`\`\n\n### 配置先\n- \`src/components/${componentName}.astro\`\n- \`src/scss/components/_c_${toSnakeCase(componentName)}.scss\``,
49
+ text: `✅ コンポーネント「${componentName}」を生成しました\n\n### ファイル出力\n${writeLogs.join("\n")}\n\n## Astroコンポーネント\n\`\`\`astro\n${formattedAstro}\n\`\`\`\n\n## SCSS\n\`\`\`scss\n${formattedScss}\n\`\`\`${getGenerationContext(projectRoot)}`,
29
50
  },
30
51
  ],
31
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generateComponent.js","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAanD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAS;IAC/C,MAAM,EACJ,aAAa,EACb,KAAK,EACL,MAAM,GAAG,EAAE,EACX,aAAa,GAAG,IAAI,GACrB,GAAG,IAAqB,CAAC;IAE1B,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;YAC7C,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,aAAa;SACd,CAAC,CAAC;QAEH,YAAY;QACZ,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;YAClC,IAAI,EAAE,aAAa;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,WAAW;QACX,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa,aAAa,6CAA6C,cAAc,oCAAoC,aAAa,2CAA2C,aAAa,wCAAwC,WAAW,CAAC,aAAa,CAAC,SAAS;iBAChR;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"generateComponent.js","sourceRoot":"","sources":["../../src/tools/generateComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAclE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAS;IAC/C,MAAM,EACJ,aAAa,EACb,KAAK,EACL,MAAM,GAAG,EAAE,EACX,aAAa,GAAG,IAAI,EACpB,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,GAC5B,GAAG,IAAqB,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;YAC7C,IAAI,EAAE,aAAa;YACnB,KAAK;YACL,aAAa;SACd,CAAC,CAAC;QAEH,YAAY;QACZ,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;YAClC,IAAI,EAAE,aAAa;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,WAAW;QACX,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzD,cAAc;QACd,MAAM,SAAS,GAAG,OAAO,CACvB,WAAW,EACX,kBAAkB,aAAa,QAAQ,CACxC,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CACtB,WAAW,EACX,0BAA0B,WAAW,CAAC,aAAa,CAAC,OAAO,CAC5D,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC;YACH,eAAe;YACf,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAClD,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;YAEjC,WAAW;YACX,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAChD,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa,aAAa,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,cAAc,oCAAoC,aAAa,WAAW,oBAAoB,CAAC,WAAW,CAAC,EAAE;iBAClO;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generatePage.d.ts","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG;;;;;GAiH3C"}
1
+ {"version":3,"file":"generatePage.d.ts","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG;;;;;GA4I3C"}
@@ -3,8 +3,9 @@ import { formatCode } from "../utils/formatter.js";
3
3
  import { parsePageIntent } from "../utils/promptParser.js";
4
4
  import { updateCommonAstro, } from "../editors/commonEditor.js";
5
5
  import { updateScssVariables, } from "../editors/scssVariablesEditor.js";
6
- import { readFileSync, writeFileSync, existsSync } from "fs";
7
- import { resolve } from "path";
6
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
7
+ import { resolve, dirname } from "path";
8
+ import { getGenerationContext } from "../utils/projectContext.js";
8
9
  /**
9
10
  * ページ生成ツール(サイト設定更新統合版)
10
11
  */
@@ -66,7 +67,15 @@ export async function generatePage(args) {
66
67
  updateLogs.push(`⚠️ _variables.scss が見つかりません: ${scssPath}`);
67
68
  }
68
69
  }
69
- // 3. ページテンプレート生成
70
+ // 3. セクションファイルの存在チェック
71
+ const missingSections = sections.filter((section) => {
72
+ const partPath = resolve(projectRoot, `src/pages/_parts/_${pageName}/_${section}.astro`);
73
+ return !existsSync(partPath);
74
+ });
75
+ if (missingSections.length > 0) {
76
+ updateLogs.push(`⚠️ 以下のセクションファイルが未作成です:\n${missingSections.map((s) => ` - _${s}.astro`).join("\n")}\n → 先に generate-section で作成することを推奨します`);
77
+ }
78
+ // 4. ページテンプレート生成
70
79
  const pageCode = generatePageTemplate({
71
80
  pageName,
72
81
  pageType,
@@ -75,15 +84,26 @@ export async function generatePage(args) {
75
84
  });
76
85
  // コード整形
77
86
  const formatted = await formatCode(pageCode, "astro");
87
+ // 5. ファイルパス解決
88
+ const pagePath = resolve(projectRoot, `src/pages/${pageName}/index.astro`);
89
+ // 6. ページファイル書き込み
90
+ try {
91
+ mkdirSync(dirname(pagePath), { recursive: true });
92
+ writeFileSync(pagePath, formatted, "utf-8");
93
+ updateLogs.push(`✅ ページファイル出力: ${pagePath}`);
94
+ }
95
+ catch (writeError) {
96
+ updateLogs.push(`❌ ページファイル書き込みエラー: ${writeError}`);
97
+ }
78
98
  // 結果メッセージの構築
79
99
  const updateSection = updateLogs.length > 0
80
- ? `### サイト設定更新\n${updateLogs.join("\n")}\n\n`
100
+ ? `### プロジェクト更新\n${updateLogs.join("\n")}\n\n`
81
101
  : "";
82
102
  return {
83
103
  content: [
84
104
  {
85
105
  type: "text",
86
- text: `${updateSection}### ページ生成\n✅ ページ「${pageName}」を生成しました\n\n\`\`\`astro\n${formatted}\n\`\`\`\n\n### 配置先\n- \`src/pages/${pageName}/index.astro\`\n\n### 必要なセクション\n${sections.map((s) => `- \`src/pages/_parts/_${pageName}/_${s}.astro\``).join("\n")}`,
106
+ text: `${updateSection}### ページ生成\n✅ ページ「${pageName}」を生成しました\n\n\`\`\`astro\n${formatted}\n\`\`\`\n\n### 必要なセクション\n${sections.map((s) => `- \`src/pages/_parts/_${pageName}/_${s}.astro\``).join("\n")}${getGenerationContext(projectRoot)}`,
87
107
  },
88
108
  ],
89
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generatePage.js","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generatePage.js","sourceRoot":"","sources":["../../src/tools/generatePage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateSection.d.ts","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG;;;;;GAiH9C"}
1
+ {"version":3,"file":"generateSection.d.ts","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"AA0CA;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG;;;;;GA+I9C"}
@@ -3,8 +3,9 @@ import { formatCode } from '../utils/formatter.js';
3
3
  import { parseSectionIntent } from '../utils/promptParser.js';
4
4
  import { generateScssPattern } from '../templates/scssPatterns.js';
5
5
  import { getRequiredScripts, updateAppJs, needsAppJsUpdate, } from '../editors/appJsEditor.js';
6
- import { readFileSync, writeFileSync, existsSync } from 'fs';
7
- import { resolve } from 'path';
6
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
7
+ import { resolve, dirname } from 'path';
8
+ import { getGenerationContext } from '../utils/projectContext.js';
8
9
  /**
9
10
  * セクション生成ツール(SCSS生成・app.js更新統合版)
10
11
  */
@@ -67,16 +68,44 @@ export async function generateSection(args) {
67
68
  sectionName: finalSectionType,
68
69
  options: scssOptions,
69
70
  });
70
- updateLogs.push(`✅ SCSSファイルを生成しました(配置先: src/scss/pages/_${pageName}.scss)`);
71
+ }
72
+ // 4. ファイルパス解決
73
+ const astroPath = resolve(projectRoot, `src/pages/_parts/_${pageName}/_${finalSectionType}.astro`);
74
+ const scssPath = resolve(projectRoot, `src/scss/pages/_${pageName}.scss`);
75
+ // 5. ファイル書き込み
76
+ try {
77
+ // Astroセクションファイル
78
+ mkdirSync(dirname(astroPath), { recursive: true });
79
+ writeFileSync(astroPath, formattedAstro, 'utf-8');
80
+ updateLogs.push(`✅ Astroファイル出力: ${astroPath}`);
81
+ // SCSSファイル(新規作成または追記)
82
+ if (scssCode) {
83
+ mkdirSync(dirname(scssPath), { recursive: true });
84
+ if (existsSync(scssPath)) {
85
+ // 既存ファイルに追記
86
+ const existingContent = readFileSync(scssPath, 'utf-8');
87
+ writeFileSync(scssPath, existingContent + '\n\n' + scssCode, 'utf-8');
88
+ updateLogs.push(`✅ SCSSファイル追記: ${scssPath}`);
89
+ }
90
+ else {
91
+ // 新規作成
92
+ writeFileSync(scssPath, scssCode, 'utf-8');
93
+ updateLogs.push(`✅ SCSSファイル出力: ${scssPath}`);
94
+ }
95
+ }
96
+ }
97
+ catch (writeError) {
98
+ updateLogs.push(`❌ ファイル書き込みエラー: ${writeError}`);
71
99
  }
72
100
  // 結果メッセージの構築
73
101
  const updateSection = updateLogs.length > 0
74
102
  ? `### プロジェクト更新\n${updateLogs.join('\n')}\n\n`
75
103
  : '';
76
- let resultText = `${updateSection}### セクション生成\n✅ セクション「${finalSectionType}」(UI: ${finalUIPattern || 'デフォルト'})を生成しました\n\n#### Astroコンポーネント\n\`\`\`astro\n${formattedAstro}\n\`\`\`\n\n**配置先**: \`src/pages/_parts/_${pageName}/_${finalSectionType}.astro\``;
104
+ let resultText = `${updateSection}### セクション生成\n✅ セクション「${finalSectionType}」(UI: ${finalUIPattern || 'デフォルト'})を生成しました\n\n#### Astroコンポーネント\n\`\`\`astro\n${formattedAstro}\n\`\`\``;
77
105
  if (scssCode) {
78
- resultText += `\n\n#### SCSSファイル\n\`\`\`scss\n${scssCode}\n\`\`\`\n\n**配置先**: \`src/scss/pages/_${pageName}.scss\`\n\n**注意**: 既存の \`_${pageName}.scss\` がある場合は、生成されたSCSSを追記してください。`;
106
+ resultText += `\n\n#### SCSSファイル\n\`\`\`scss\n${scssCode}\n\`\`\``;
79
107
  }
108
+ resultText += getGenerationContext(projectRoot);
80
109
  return {
81
110
  content: [
82
111
  {
@@ -1 +1 @@
1
- {"version":3,"file":"generateSection.js","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateSection.js","sourceRoot":"","sources":["../../src/tools/generateSection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * コンポーネントインターフェース取得ツール
3
+ * .astroファイルの---フェンス内からProps interfaceを抽出して返す
4
+ */
5
+ export declare function getComponentInterface(args: any): Promise<{
6
+ content: {
7
+ type: string;
8
+ text: string;
9
+ }[];
10
+ }>;
11
+ //# sourceMappingURL=getComponentInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getComponentInterface.d.ts","sourceRoot":"","sources":["../../src/tools/getComponentInterface.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,GAAG;;;;;GA0EpD"}
@@ -0,0 +1,107 @@
1
+ import { readFileSync, existsSync, readdirSync } from "fs";
2
+ import { resolve, basename } from "path";
3
+ /**
4
+ * コンポーネントインターフェース取得ツール
5
+ * .astroファイルの---フェンス内からProps interfaceを抽出して返す
6
+ */
7
+ export async function getComponentInterface(args) {
8
+ const { componentName, projectRoot = process.cwd() } = args;
9
+ const componentsDir = resolve(projectRoot, "src/components");
10
+ if (!existsSync(componentsDir)) {
11
+ return {
12
+ content: [
13
+ {
14
+ type: "text",
15
+ text: "⚠️ src/components/ ディレクトリが見つかりません",
16
+ },
17
+ ],
18
+ };
19
+ }
20
+ // 特定コンポーネント指定の場合
21
+ if (componentName) {
22
+ const fileName = componentName.endsWith(".astro")
23
+ ? componentName
24
+ : `${componentName}.astro`;
25
+ const filePath = resolve(componentsDir, fileName);
26
+ if (!existsSync(filePath)) {
27
+ return {
28
+ content: [
29
+ {
30
+ type: "text",
31
+ text: `⚠️ コンポーネントが見つかりません: ${fileName}`,
32
+ },
33
+ ],
34
+ };
35
+ }
36
+ const summary = extractComponentSummary(filePath);
37
+ return {
38
+ content: [
39
+ {
40
+ type: "text",
41
+ text: formatSummary(summary),
42
+ },
43
+ ],
44
+ };
45
+ }
46
+ // 全コンポーネント一括取得
47
+ const files = readdirSync(componentsDir).filter((f) => f.endsWith(".astro"));
48
+ if (files.length === 0) {
49
+ return {
50
+ content: [
51
+ {
52
+ type: "text",
53
+ text: "ℹ️ src/components/ にAstroコンポーネントがありません",
54
+ },
55
+ ],
56
+ };
57
+ }
58
+ const summaries = files.map((file) => extractComponentSummary(resolve(componentsDir, file)));
59
+ const output = summaries.map(formatSummary).join("\n\n---\n\n");
60
+ return {
61
+ content: [
62
+ {
63
+ type: "text",
64
+ text: `## コンポーネント一覧(${summaries.length}件)\n\n${output}`,
65
+ },
66
+ ],
67
+ };
68
+ }
69
+ /**
70
+ * .astroファイルからProps interfaceとJSDocコメントを抽出
71
+ */
72
+ function extractComponentSummary(filePath) {
73
+ const name = basename(filePath, ".astro");
74
+ const content = readFileSync(filePath, "utf-8");
75
+ // ---フェンス内を抽出
76
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
77
+ if (!frontmatterMatch) {
78
+ return { name, props: "(Props定義なし)", description: "" };
79
+ }
80
+ const frontmatter = frontmatterMatch[1];
81
+ // Props interface を抽出(interface Props { ... } のブロック全体)
82
+ const propsMatch = frontmatter.match(/interface\s+Props\s*\{([\s\S]*?)^\}/m);
83
+ const props = propsMatch
84
+ ? `interface Props {${propsMatch[1]}}`
85
+ : "(Props定義なし)";
86
+ // JSDocコメントを抽出(Props直前の /** ... */ )
87
+ const jsdocMatch = frontmatter.match(/\/\*\*[\s\S]*?\*\/\s*(?=\n\s*interface\s+Props)/);
88
+ const description = jsdocMatch
89
+ ? jsdocMatch[0]
90
+ .replace(/\/\*\*|\*\//g, "")
91
+ .replace(/^\s*\*\s?/gm, "")
92
+ .trim()
93
+ : "";
94
+ return { name, props, description };
95
+ }
96
+ /**
97
+ * サマリーを整形して返す
98
+ */
99
+ function formatSummary(summary) {
100
+ const lines = [`### ${summary.name}`];
101
+ if (summary.description) {
102
+ lines.push(summary.description);
103
+ }
104
+ lines.push(`\`\`\`typescript\n${summary.props}\n\`\`\``);
105
+ return lines.join("\n");
106
+ }
107
+ //# sourceMappingURL=getComponentInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getComponentInterface.js","sourceRoot":"","sources":["../../src/tools/getComponentInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAazC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAS;IACnD,MAAM,EAAE,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAClD,IAA8B,CAAC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAE7D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mCAAmC;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/C,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,GAAG,aAAa,QAAQ,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,uBAAuB,QAAQ,EAAE;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC;IAED,eAAe;IACf,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,wCAAwC;iBAC/C;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,uBAAuB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEhE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB,SAAS,CAAC,MAAM,SAAS,MAAM,EAAE;aACxD;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,cAAc;IACd,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAExC,uDAAuD;IACvD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAClC,sCAAsC,CACvC,CAAC;IACF,MAAM,KAAK,GAAG,UAAU;QACtB,CAAC,CAAC,oBAAoB,UAAU,CAAC,CAAC,CAAC,GAAG;QACtC,CAAC,CAAC,aAAa,CAAC;IAElB,qCAAqC;IACrC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAClC,iDAAiD,CAClD,CAAC;IACF,MAAM,WAAW,GAAG,UAAU;QAC5B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;aACV,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC3B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,IAAI,EAAE;QACX,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAyB;IAC9C,MAAM,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * プロジェクトコンテキスト取得ツール
3
+ */
4
+ export declare function getProjectContext(args: any): Promise<{
5
+ content: {
6
+ type: string;
7
+ text: string;
8
+ }[];
9
+ }>;
10
+ //# sourceMappingURL=getProjectContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectContext.d.ts","sourceRoot":"","sources":["../../src/tools/getProjectContext.ts"],"names":[],"mappings":"AAyFA;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG;;;;;GAkEhD"}
@@ -0,0 +1,173 @@
1
+ import { readFileSync, existsSync, readdirSync, statSync } from "fs";
2
+ import { resolve } from "path";
3
+ /**
4
+ * デフォルトのAstro開発規約(ai-context.md が見つからない場合のフォールバック)
5
+ */
6
+ const DEFAULT_CONTEXT = `# Astro-dev プロジェクト規約
7
+
8
+ ## ディレクトリ構造
9
+ - src/layouts/ - レイアウトテンプレート(Layout.astro, Common.astro)
10
+ - src/components/ - 再利用可能なコンポーネント
11
+ - src/pages/ - ページファイル({pageName}/index.astro)
12
+ - src/pages/_parts/ - ページセクション(_{pageName}/_{section}.astro)
13
+ - src/scss/ - スタイルシート
14
+ - abstracts/ - 変数・ミックスイン(_variables.scss, _mixins.scss)
15
+ - components/ - コンポーネント用SCSS(_c_{name}.scss)
16
+ - pages/ - ページ用SCSS(_{pageName}.scss)
17
+ - src/js/ - JavaScript(app.js がエントリーポイント)
18
+ - public/_assets/img/ - 画像ファイル
19
+
20
+ ## コーディング規約
21
+ - テキスト出力: set:html={data.ttl} を使用(HTMLタグ対応のため)
22
+ - 画像: <img>ではなくPictureコンポーネントを使用
23
+ - コンテンツ幅: section > .contentInner でラップ
24
+ - Props: セクションコンポーネントは常に data で受け取る
25
+ - CSSクラス: スネークスタイル(.tech_card)、状態・子要素はケバブ(.tech_card-active)
26
+ - レスポンシブ: モバイルファースト、@include mq() でPC対応
27
+ - target="_blank": rel="noopener noreferrer" は不要(モダンブラウザで暗黙適用)
28
+
29
+ ## データ駆動設計
30
+ - ページデータは const page = { head, breadcrumbs, contents } で定義
31
+ - セクションには data={page.contents.xxx} で渡す
32
+ - imgPath は "/_assets/img/" + page.head.slug + "/" で定義
33
+
34
+ ## 使用可能なUIパターン
35
+ tab, accordion, grid, carousel, list, modal
36
+ (上記以外はフォールバックで自動生成)
37
+
38
+ ## 技術スタック
39
+ - Astro(SSG)
40
+ - SCSS(Tailwind不使用)
41
+ - TypeScript
42
+ - カスタムmixin: @include mq(), @include hover(), @include fontsize()
43
+ `;
44
+ /**
45
+ * プロジェクト構造をスキャンして返す
46
+ */
47
+ function scanProjectStructure(projectRoot) {
48
+ const structure = {};
49
+ const scanDir = (dir, key, depth = 1) => {
50
+ const fullPath = resolve(projectRoot, dir);
51
+ if (!existsSync(fullPath))
52
+ return;
53
+ try {
54
+ const entries = readdirSync(fullPath);
55
+ structure[key] = entries
56
+ .filter((e) => {
57
+ // 不要なディレクトリ・ファイルを除外
58
+ if (e.startsWith(".") || e === "node_modules")
59
+ return false;
60
+ if (depth === 0)
61
+ return !statSync(resolve(fullPath, e)).isDirectory();
62
+ return true;
63
+ })
64
+ .map((e) => {
65
+ const entryPath = resolve(fullPath, e);
66
+ const isDir = statSync(entryPath).isDirectory();
67
+ return isDir ? `${e}/` : e;
68
+ });
69
+ }
70
+ catch {
71
+ // 読み込みエラーは無視
72
+ }
73
+ };
74
+ scanDir("src/layouts", "layouts");
75
+ scanDir("src/components", "components");
76
+ scanDir("src/pages", "pages");
77
+ scanDir("src/scss/abstracts", "scss/abstracts");
78
+ scanDir("src/scss/components", "scss/components");
79
+ scanDir("src/scss/pages", "scss/pages");
80
+ scanDir("src/js", "js", 0);
81
+ return structure;
82
+ }
83
+ /**
84
+ * プロジェクトコンテキスト取得ツール
85
+ */
86
+ export async function getProjectContext(args) {
87
+ const { projectRoot = process.cwd() } = args;
88
+ const sections = [];
89
+ // 1. コーディング規約の読み込み(優先順位順)
90
+ const contextFiles = ["ai-context.md", ".cursorrules"];
91
+ let rulesSource = "";
92
+ let rulesContent = "";
93
+ for (const file of contextFiles) {
94
+ const filePath = resolve(projectRoot, file);
95
+ if (existsSync(filePath)) {
96
+ try {
97
+ rulesContent = readFileSync(filePath, "utf-8")
98
+ .replace(/\n{3,}/g, "\n\n") // 3行以上の空行を2行に
99
+ .trim();
100
+ rulesSource = file;
101
+ break;
102
+ }
103
+ catch {
104
+ // 読み込みエラーは次のファイルへ
105
+ }
106
+ }
107
+ }
108
+ if (rulesContent) {
109
+ sections.push(`## コーディング規約(${rulesSource} より)\n${rulesContent}`);
110
+ }
111
+ else {
112
+ sections.push(DEFAULT_CONTEXT.trim());
113
+ }
114
+ // 2. プロジェクト構造のスキャン
115
+ const structure = scanProjectStructure(projectRoot);
116
+ if (Object.keys(structure).length > 0) {
117
+ const structureLines = Object.entries(structure)
118
+ .map(([dir, files]) => `### ${dir}\n${files.map((f) => `- ${f}`).join("\n")}`)
119
+ .join("\n\n");
120
+ sections.push(`## プロジェクト構造\n${structureLines}`);
121
+ }
122
+ // 3. SCSS変数の要約(存在する場合)
123
+ const variablesPath = resolve(projectRoot, "src/scss/abstracts/_variables.scss");
124
+ if (existsSync(variablesPath)) {
125
+ try {
126
+ const varsContent = readFileSync(variablesPath, "utf-8");
127
+ const summary = extractScssVariablesSummary(varsContent);
128
+ if (summary) {
129
+ sections.push(`## SCSS変数(_variables.scss)\n${summary}`);
130
+ }
131
+ }
132
+ catch {
133
+ // 読み込みエラーは無視
134
+ }
135
+ }
136
+ return {
137
+ content: [
138
+ {
139
+ type: "text",
140
+ text: sections.join("\n\n---\n\n"),
141
+ },
142
+ ],
143
+ };
144
+ }
145
+ /**
146
+ * SCSS変数ファイルからカラー・レイアウト・フォントサイズの要約を抽出
147
+ */
148
+ function extractScssVariablesSummary(content) {
149
+ const lines = [];
150
+ // カラー変数
151
+ const colorMatches = content.match(/\$color-[\w-]+:\s*[^;]+;/g);
152
+ if (colorMatches) {
153
+ lines.push("### カラー", ...colorMatches.map((m) => `- ${m.trim()}`));
154
+ }
155
+ // レイアウト変数
156
+ const layoutVars = ["$brakePoint", "$containerSize", "$containerPadding"];
157
+ const layoutMatches = layoutVars
158
+ .map((v) => {
159
+ const match = content.match(new RegExp(`\\${v}:\\s*[^;]+;`));
160
+ return match ? `- ${match[0].trim()}` : null;
161
+ })
162
+ .filter(Boolean);
163
+ if (layoutMatches.length > 0) {
164
+ lines.push("### レイアウト", ...layoutMatches);
165
+ }
166
+ // フォントサイズ変数
167
+ const fontMatches = content.match(/\$font-[\w-]+:\s*[^;]+;/g);
168
+ if (fontMatches) {
169
+ lines.push("### フォントサイズ", ...fontMatches.map((m) => `- ${m.trim()}`));
170
+ }
171
+ return lines.join("\n");
172
+ }
173
+ //# sourceMappingURL=getProjectContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectContext.js","sourceRoot":"","sources":["../../src/tools/getProjectContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * generate-* ツール実行時にレスポンスへ自動注入するプロジェクト規約を取得
3
+ * get-project-context の完全版とは異なり、生成に直接関わる最小限の情報のみ返す
4
+ */
5
+ export declare function getGenerationContext(projectRoot: string): string;
6
+ //# sourceMappingURL=projectContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectContext.d.ts","sourceRoot":"","sources":["../../src/utils/projectContext.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBhE"}
@@ -0,0 +1,71 @@
1
+ import { readFileSync, existsSync } from "fs";
2
+ import { resolve } from "path";
3
+ /**
4
+ * generate-* ツール実行時にレスポンスへ自動注入するプロジェクト規約を取得
5
+ * get-project-context の完全版とは異なり、生成に直接関わる最小限の情報のみ返す
6
+ */
7
+ export function getGenerationContext(projectRoot) {
8
+ const sections = [];
9
+ // 1. コーディング規約の読み込み
10
+ const rules = readProjectRules(projectRoot);
11
+ if (rules) {
12
+ sections.push(rules);
13
+ }
14
+ // 2. SCSS変数の要約
15
+ const scssVars = readScssVariablesSummary(projectRoot);
16
+ if (scssVars) {
17
+ sections.push(`### SCSS変数\n${scssVars}`);
18
+ }
19
+ if (sections.length === 0)
20
+ return "";
21
+ return `\n\n---\n### プロジェクト規約(自動注入)\n${sections.join("\n\n")}`;
22
+ }
23
+ /**
24
+ * ai-context.md または .cursorrules からプロジェクト規約を読み込む
25
+ */
26
+ function readProjectRules(projectRoot) {
27
+ const files = ["ai-context.md", ".cursorrules"];
28
+ for (const file of files) {
29
+ const filePath = resolve(projectRoot, file);
30
+ if (existsSync(filePath)) {
31
+ try {
32
+ return readFileSync(filePath, "utf-8")
33
+ .replace(/\n{3,}/g, "\n\n")
34
+ .trim();
35
+ }
36
+ catch {
37
+ continue;
38
+ }
39
+ }
40
+ }
41
+ return null;
42
+ }
43
+ /**
44
+ * _variables.scss からカラー・レイアウト変数の要約を抽出
45
+ */
46
+ function readScssVariablesSummary(projectRoot) {
47
+ const filePath = resolve(projectRoot, "src/scss/abstracts/_variables.scss");
48
+ if (!existsSync(filePath))
49
+ return null;
50
+ try {
51
+ const content = readFileSync(filePath, "utf-8");
52
+ const lines = [];
53
+ // カラー変数
54
+ const colors = content.match(/\$color-[\w-]+:\s*[^;]+;/g);
55
+ if (colors) {
56
+ lines.push(...colors.map((m) => m.trim()));
57
+ }
58
+ // レイアウト変数
59
+ const layoutVars = ["$brakePoint", "$containerSize", "$containerPadding"];
60
+ for (const v of layoutVars) {
61
+ const match = content.match(new RegExp(`\\${v}:\\s*[^;]+;`));
62
+ if (match)
63
+ lines.push(match[0].trim());
64
+ }
65
+ return lines.length > 0 ? lines.join("\n") : null;
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ //# sourceMappingURL=projectContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectContext.js","sourceRoot":"","sources":["../../src/utils/projectContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mBAAmB;IACnB,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,eAAe;IACf,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,OAAO,gCAAgC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,KAAK,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;qBACnC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;qBAC1B,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,WAAmB;IACnD,MAAM,QAAQ,GAAG,OAAO,CACtB,WAAW,EACX,oCAAoC,CACrC,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,QAAQ;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,UAAU;QACV,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7D,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro-dev-mcp",
3
- "version": "0.5.7",
3
+ "version": "0.7.0",
4
4
  "description": "MCP server for generating Astro components, sections, and pages from design data and content",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",