wiggum-cli 0.2.3 → 0.2.5
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/ai/enhancer.d.ts.map +1 -1
- package/dist/ai/enhancer.js +9 -7
- package/dist/ai/enhancer.js.map +1 -1
- package/dist/ai/providers.d.ts +4 -0
- package/dist/ai/providers.d.ts.map +1 -1
- package/dist/ai/providers.js +16 -0
- package/dist/ai/providers.js.map +1 -1
- package/dist/generator/templates.d.ts +8 -0
- package/dist/generator/templates.d.ts.map +1 -1
- package/dist/generator/templates.js +90 -4
- package/dist/generator/templates.js.map +1 -1
- package/dist/templates/guides/AGENTS.md.tmpl +39 -22
- package/package.json +1 -1
- package/src/ai/enhancer.ts +9 -5
- package/src/ai/providers.ts +18 -0
- package/src/generator/templates.ts +139 -6
- package/src/templates/guides/AGENTS.md.tmpl +39 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancer.d.ts","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAY,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"enhancer.d.ts","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAY,KAAK,UAAU,EAAgD,MAAM,gBAAgB,CAAC;AAKzG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4DD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,eAAoB;IAOzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgElE;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,cAAc;CAoD7B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAwEnE"}
|
package/dist/ai/enhancer.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Uses AI to analyze the codebase for deeper insights
|
|
4
4
|
*/
|
|
5
5
|
import { generateText, stepCountIs } from 'ai';
|
|
6
|
-
import { getModel, hasApiKey, getApiKeyEnvVar } from './providers.js';
|
|
6
|
+
import { getModel, hasApiKey, getApiKeyEnvVar, isReasoningModel } from './providers.js';
|
|
7
7
|
import { SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt } from './prompts.js';
|
|
8
8
|
import { createExplorationTools } from './tools.js';
|
|
9
9
|
import { logger } from '../utils/logger.js';
|
|
@@ -107,11 +107,11 @@ export class AIEnhancer {
|
|
|
107
107
|
let analysis;
|
|
108
108
|
if (this.agentic) {
|
|
109
109
|
// Agentic mode: use tools to explore codebase
|
|
110
|
-
analysis = await this.enhanceAgentic(model, scanResult);
|
|
110
|
+
analysis = await this.enhanceAgentic(model, modelId, scanResult);
|
|
111
111
|
}
|
|
112
112
|
else {
|
|
113
113
|
// Simple mode: just analyze detected stack
|
|
114
|
-
analysis = await this.enhanceSimple(model, scanResult);
|
|
114
|
+
analysis = await this.enhanceSimple(model, modelId, scanResult);
|
|
115
115
|
}
|
|
116
116
|
if (!analysis) {
|
|
117
117
|
return {
|
|
@@ -145,21 +145,22 @@ export class AIEnhancer {
|
|
|
145
145
|
/**
|
|
146
146
|
* Simple enhancement mode - analyze detected stack without tools
|
|
147
147
|
*/
|
|
148
|
-
async enhanceSimple(model, scanResult) {
|
|
148
|
+
async enhanceSimple(model, modelId, scanResult) {
|
|
149
149
|
const prompt = createAnalysisPrompt(scanResult);
|
|
150
150
|
const { text } = await generateText({
|
|
151
151
|
model,
|
|
152
152
|
system: SYSTEM_PROMPT,
|
|
153
153
|
prompt,
|
|
154
154
|
maxOutputTokens: 2000,
|
|
155
|
-
temperature
|
|
155
|
+
// Reasoning models don't support temperature
|
|
156
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
156
157
|
});
|
|
157
158
|
return parseAIResponse(text);
|
|
158
159
|
}
|
|
159
160
|
/**
|
|
160
161
|
* Agentic enhancement mode - use tools to explore codebase
|
|
161
162
|
*/
|
|
162
|
-
async enhanceAgentic(model, scanResult) {
|
|
163
|
+
async enhanceAgentic(model, modelId, scanResult) {
|
|
163
164
|
const tools = createExplorationTools(scanResult.projectRoot);
|
|
164
165
|
const prompt = `Analyze this codebase and produce configuration for AI-assisted development.
|
|
165
166
|
|
|
@@ -199,7 +200,8 @@ When done exploring, output your final analysis as valid JSON matching this stru
|
|
|
199
200
|
tools,
|
|
200
201
|
stopWhen: stepCountIs(10),
|
|
201
202
|
maxOutputTokens: 4000,
|
|
202
|
-
temperature
|
|
203
|
+
// Reasoning models don't support temperature
|
|
204
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
203
205
|
});
|
|
204
206
|
return parseAIResponse(text);
|
|
205
207
|
}
|
package/dist/ai/enhancer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancer.js","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAmB,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"enhancer.js","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAmB,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAyE5C;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,wCAAwC;QACxC,+CAA+C;QAC/C,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,0BAA0B;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAqB,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,KAAoB,EACpB,QAA0B;IAE1B,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAE9B,+CAA+C;IAC/C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG;YACpB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;YACxC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;SAC3C,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,GAAG;gBACb,GAAG,QAAQ,CAAC,GAAG;gBACf,WAAW,EAAE;oBACX,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;oBACpC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACtE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,UAAU;IACb,QAAQ,CAAa;IACrB,KAAK,CAAU;IACf,OAAO,CAAU;IACjB,OAAO,CAAU;IAEzB,YAAY,UAA2B,EAAE;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,UAAsB;QAClC,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxC,OAAO;gBACL,GAAG,UAAU;gBACb,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,0BAA0B,MAAM,4BAA4B;aACtE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEzE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,sBAAsB,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC;gBAC3D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,IAAI,QAAiC,CAAC;YAEtC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,8CAA8C;gBAC9C,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,GAAG,UAAU;oBACb,UAAU,EAAE,KAAK;oBACjB,UAAU,EAAE,IAAI,CAAC,QAAQ;oBACzB,OAAO,EAAE,sCAAsC;iBAChD,CAAC;YACJ,CAAC;YAED,kCAAkC;YAClC,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAEpE,OAAO;gBACL,GAAG,UAAU;gBACb,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;YAEvD,OAAO;gBACL,GAAG,UAAU;gBACb,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,QAAQ;gBACzB,OAAO,EAAE,YAAY;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,KAA2C,EAC3C,OAAe,EACf,UAAsB;QAEtB,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC;YAClC,KAAK;YACL,MAAM,EAAE,aAAa;YACrB,MAAM;YACN,eAAe,EAAE,IAAI;YACrB,6CAA6C;YAC7C,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;SAC3D,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,KAA2C,EAC3C,OAAe,EACf,UAAsB;QAEtB,MAAM,KAAK,GAAG,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG;;WAER,UAAU,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B/B,CAAC;QAEC,iEAAiE;QACjE,+DAA+D;QAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC;YAClC,KAAK;YACL,MAAM,EAAE,qBAAqB;YAC7B,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;YACzB,eAAe,EAAE,IAAI;YACrB,6CAA6C;YAC7C,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;SAC3D,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAsB,EACtB,OAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA0B;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC;QAEpC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,QAAQ,CAAC,wBAAwB,IAAI,QAAQ,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,cAAc;IACd,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,QAAQ,CAAC,0BAA0B,IAAI,QAAQ,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/ai/providers.d.ts
CHANGED
|
@@ -44,4 +44,8 @@ export declare function getAvailableProvider(): AIProvider | null;
|
|
|
44
44
|
* Get the environment variable name for a provider's API key
|
|
45
45
|
*/
|
|
46
46
|
export declare function getApiKeyEnvVar(provider: AIProvider): string;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a model is a reasoning model that doesn't support temperature
|
|
49
|
+
*/
|
|
50
|
+
export declare function isReasoningModel(modelId: string): boolean;
|
|
47
51
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAkB9D,CAAC;AAYF;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAGvD;AAmBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,UAAwB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,cAAc,CA0CnG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,GAAG,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAE5D"}
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAkB9D,CAAC;AAYF;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAGvD;AAmBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,UAAwB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,cAAc,CA0CnG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,GAAG,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAE5D;AAaD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
package/dist/ai/providers.js
CHANGED
|
@@ -123,4 +123,20 @@ export function getAvailableProvider() {
|
|
|
123
123
|
export function getApiKeyEnvVar(provider) {
|
|
124
124
|
return API_KEY_ENV_VARS[provider];
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Models that don't support temperature parameter (reasoning models)
|
|
128
|
+
*/
|
|
129
|
+
const REASONING_MODELS = [
|
|
130
|
+
// OpenAI reasoning models
|
|
131
|
+
'o1', 'o1-mini', 'o1-preview',
|
|
132
|
+
'o3', 'o3-mini',
|
|
133
|
+
'gpt-5', 'gpt-5.1', 'gpt-5-mini',
|
|
134
|
+
'gpt-5.1-codex', 'gpt-5.1-codex-max',
|
|
135
|
+
];
|
|
136
|
+
/**
|
|
137
|
+
* Check if a model is a reasoning model that doesn't support temperature
|
|
138
|
+
*/
|
|
139
|
+
export function isReasoningModel(modelId) {
|
|
140
|
+
return REASONING_MODELS.some(m => modelId.startsWith(m));
|
|
141
|
+
}
|
|
126
142
|
//# sourceMappingURL=providers.js.map
|
package/dist/ai/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,14 @@ export interface TemplateVariables {
|
|
|
28
28
|
typecheckCommand: string;
|
|
29
29
|
formatCommand: string;
|
|
30
30
|
appDir: string;
|
|
31
|
+
aiEntryPoints: string;
|
|
32
|
+
aiKeyDirectories: string;
|
|
33
|
+
aiNamingConventions: string;
|
|
34
|
+
aiImplementationGuidelines: string;
|
|
35
|
+
aiMcpEssential: string;
|
|
36
|
+
aiMcpRecommended: string;
|
|
37
|
+
aiMissedTechnologies: string;
|
|
38
|
+
hasAiAnalysis: string;
|
|
31
39
|
[key: string]: string;
|
|
32
40
|
}
|
|
33
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/generator/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAKrE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAG9B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAGvB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,MAAM,CAAC;IAGf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/generator/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAKrE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAG9B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAGvB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,MAAM,CAAC;IAGf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IAGtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAsJD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,iBAAiB,CAiEnH;AAsKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAWtF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7G;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA2BrF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU9B"}
|
|
@@ -40,6 +40,78 @@ function deriveCommands(packageManager) {
|
|
|
40
40
|
formatCommand: pm === 'npm' ? 'npx prettier --write .' : `${pm} prettier --write .`,
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Format AI analysis data for templates
|
|
45
|
+
*/
|
|
46
|
+
function formatAiAnalysisForTemplates(scanResult) {
|
|
47
|
+
// Check if this is an EnhancedScanResult with aiAnalysis
|
|
48
|
+
const aiAnalysis = scanResult.aiAnalysis;
|
|
49
|
+
if (!aiAnalysis) {
|
|
50
|
+
return {
|
|
51
|
+
hasAiAnalysis: '',
|
|
52
|
+
aiEntryPoints: '',
|
|
53
|
+
aiKeyDirectories: '',
|
|
54
|
+
aiNamingConventions: '',
|
|
55
|
+
aiImplementationGuidelines: '',
|
|
56
|
+
aiMcpEssential: '',
|
|
57
|
+
aiMcpRecommended: '',
|
|
58
|
+
aiMissedTechnologies: '',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Format entry points as bullet list
|
|
62
|
+
const entryPoints = aiAnalysis.projectContext?.entryPoints || [];
|
|
63
|
+
const aiEntryPoints = entryPoints.length > 0
|
|
64
|
+
? entryPoints.map(e => `- \`${e}\``).join('\n')
|
|
65
|
+
: '';
|
|
66
|
+
// Format key directories as table rows
|
|
67
|
+
const keyDirs = aiAnalysis.projectContext?.keyDirectories || {};
|
|
68
|
+
const aiKeyDirectories = Object.keys(keyDirs).length > 0
|
|
69
|
+
? Object.entries(keyDirs).map(([dir, purpose]) => `| \`${dir}/\` | ${purpose} |`).join('\n')
|
|
70
|
+
: '';
|
|
71
|
+
// Naming conventions
|
|
72
|
+
const aiNamingConventions = aiAnalysis.projectContext?.namingConventions || '';
|
|
73
|
+
// Implementation guidelines as bullet list
|
|
74
|
+
const guidelines = aiAnalysis.implementationGuidelines || [];
|
|
75
|
+
const aiImplementationGuidelines = guidelines.length > 0
|
|
76
|
+
? guidelines.map(g => `- ${g}`).join('\n')
|
|
77
|
+
: '';
|
|
78
|
+
// MCP servers
|
|
79
|
+
const aiMcpEssential = (aiAnalysis.mcpServers?.essential || []).join(', ');
|
|
80
|
+
const aiMcpRecommended = (aiAnalysis.mcpServers?.recommended || []).join(', ');
|
|
81
|
+
// Missed technologies
|
|
82
|
+
const aiMissedTechnologies = (aiAnalysis.possibleMissedTechnologies || []).join(', ');
|
|
83
|
+
return {
|
|
84
|
+
hasAiAnalysis: 'true',
|
|
85
|
+
aiEntryPoints,
|
|
86
|
+
aiKeyDirectories,
|
|
87
|
+
aiNamingConventions,
|
|
88
|
+
aiImplementationGuidelines,
|
|
89
|
+
aiMcpEssential,
|
|
90
|
+
aiMcpRecommended,
|
|
91
|
+
aiMissedTechnologies,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Extract AI-detected commands or fall back to derived commands
|
|
96
|
+
*/
|
|
97
|
+
function getCommands(scanResult, packageManager) {
|
|
98
|
+
// Check for AI-detected commands
|
|
99
|
+
const aiCommands = scanResult.aiAnalysis?.commands;
|
|
100
|
+
// Derive default commands from package manager
|
|
101
|
+
const derived = deriveCommands(packageManager);
|
|
102
|
+
if (!aiCommands) {
|
|
103
|
+
return derived;
|
|
104
|
+
}
|
|
105
|
+
// Use AI-detected commands where available, fall back to derived
|
|
106
|
+
return {
|
|
107
|
+
devCommand: aiCommands.dev || derived.devCommand,
|
|
108
|
+
buildCommand: aiCommands.build || derived.buildCommand,
|
|
109
|
+
testCommand: aiCommands.test || derived.testCommand,
|
|
110
|
+
lintCommand: aiCommands.lint || derived.lintCommand,
|
|
111
|
+
typecheckCommand: aiCommands.typecheck || derived.typecheckCommand,
|
|
112
|
+
formatCommand: aiCommands.format || derived.formatCommand,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
43
115
|
/**
|
|
44
116
|
* Extract template variables from scan result
|
|
45
117
|
*/
|
|
@@ -63,10 +135,23 @@ export function extractVariables(scanResult, customVars = {}) {
|
|
|
63
135
|
const styling = stack.styling?.name || DEFAULT_VARIABLES.styling;
|
|
64
136
|
const stylingVersion = stack.styling?.version || DEFAULT_VARIABLES.stylingVersion;
|
|
65
137
|
const stylingVariant = stack.styling?.variant || DEFAULT_VARIABLES.stylingVariant;
|
|
66
|
-
//
|
|
67
|
-
const commands =
|
|
68
|
-
//
|
|
69
|
-
const
|
|
138
|
+
// Get commands (AI-detected or derived)
|
|
139
|
+
const commands = getCommands(scanResult, packageManager);
|
|
140
|
+
// Extract AI analysis data
|
|
141
|
+
const aiData = formatAiAnalysisForTemplates(scanResult);
|
|
142
|
+
// Determine app directory - use AI entry points if available
|
|
143
|
+
let appDir = 'src';
|
|
144
|
+
if (frameworkVariant === 'app-router' || framework.toLowerCase().includes('next')) {
|
|
145
|
+
appDir = 'app';
|
|
146
|
+
}
|
|
147
|
+
else if (aiData.aiEntryPoints) {
|
|
148
|
+
// Try to extract common directory from entry points
|
|
149
|
+
const entryPoints = scanResult
|
|
150
|
+
.aiAnalysis?.projectContext?.entryPoints || [];
|
|
151
|
+
if (entryPoints.length > 0 && entryPoints[0].startsWith('src/')) {
|
|
152
|
+
appDir = 'src';
|
|
153
|
+
}
|
|
154
|
+
}
|
|
70
155
|
return {
|
|
71
156
|
projectName,
|
|
72
157
|
projectRoot,
|
|
@@ -84,6 +169,7 @@ export function extractVariables(scanResult, customVars = {}) {
|
|
|
84
169
|
stylingVariant,
|
|
85
170
|
appDir,
|
|
86
171
|
...commands,
|
|
172
|
+
...aiData,
|
|
87
173
|
...customVars,
|
|
88
174
|
};
|
|
89
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/generator/templates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/generator/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,20 @@
|
|
|
3
3
|
## Stack
|
|
4
4
|
{{framework}}{{#if frameworkVersion}} {{frameworkVersion}}{{/if}}{{#if frameworkVariant}} ({{frameworkVariant}}){{/if}}, TypeScript, {{styling || css}}{{#if unitTest}}, {{unitTest}}{{/if}}{{#if e2eTest}}, {{e2eTest}}{{/if}}
|
|
5
5
|
|
|
6
|
+
{{#if aiEntryPoints}}## Entry Points
|
|
7
|
+
{{aiEntryPoints}}
|
|
8
|
+
|
|
9
|
+
{{/if}}
|
|
6
10
|
## Commands
|
|
11
|
+
{{#if hasAiAnalysis}}
|
|
12
|
+
| Action | Command |
|
|
13
|
+
|--------|---------|
|
|
14
|
+
| Dev | `{{devCommand}}` |
|
|
15
|
+
| Build | `{{buildCommand}}` |
|
|
16
|
+
| Test | `{{testCommand}}` |
|
|
17
|
+
| Lint | `{{lintCommand}}` |
|
|
18
|
+
| Typecheck | `{{typecheckCommand}}` |
|
|
19
|
+
{{else}}
|
|
7
20
|
All commands run from `{{appDir}}/` directory:
|
|
8
21
|
|
|
9
22
|
| Action | Command |
|
|
@@ -16,19 +29,20 @@ All commands run from `{{appDir}}/` directory:
|
|
|
16
29
|
| Typecheck | `cd {{appDir}} && {{typecheckCommand}}` |
|
|
17
30
|
{{#if unitTest}}| Test | `cd {{appDir}} && {{testCommand}}` |
|
|
18
31
|
| Test watch | `cd {{appDir}} && {{testCommand}} -- --watch` |{{/if}}
|
|
32
|
+
{{/if}}
|
|
19
33
|
|
|
20
34
|
## Validation (run before commit)
|
|
21
35
|
```bash
|
|
22
|
-
|
|
36
|
+
{{lintCommand}} && {{typecheckCommand}}{{#if unitTest}} && {{testCommand}}{{/if}} && {{buildCommand}}
|
|
23
37
|
```
|
|
24
38
|
|
|
25
|
-
##
|
|
26
|
-
```bash
|
|
27
|
-
cd {{appDir}} && {{packageManager}} audit # Check vulnerable dependencies
|
|
28
|
-
```
|
|
29
|
-
Then review changes against @.ralph/guides/SECURITY.md checklist.
|
|
30
|
-
Use `mcp__supabase__get_advisors` with type "security" to check RLS policies.
|
|
39
|
+
{{#if aiKeyDirectories}}## Project Structure
|
|
31
40
|
|
|
41
|
+
| Directory | Purpose |
|
|
42
|
+
|-----------|---------|
|
|
43
|
+
{{aiKeyDirectories}}
|
|
44
|
+
|
|
45
|
+
{{else}}
|
|
32
46
|
## Patterns
|
|
33
47
|
- Pages: `{{appDir}}/app/` - Next.js App Router
|
|
34
48
|
- Components: `{{appDir}}/components/` - see ui/, ai-elements/, survey-editor/
|
|
@@ -36,27 +50,30 @@ Use `mcp__supabase__get_advisors` with type "security" to check RLS policies.
|
|
|
36
50
|
- Store: `{{appDir}}/store/` - State management
|
|
37
51
|
- Server Actions: `{{appDir}}/app/actions.ts` and `{{appDir}}/app/actions/`
|
|
38
52
|
- Libs: `{{appDir}}/lib/` - utilities and integrations
|
|
53
|
+
{{/if}}
|
|
54
|
+
|
|
55
|
+
{{#if aiImplementationGuidelines}}## Implementation Guidelines
|
|
56
|
+
{{aiImplementationGuidelines}}
|
|
39
57
|
|
|
58
|
+
{{/if}}
|
|
40
59
|
## Search Tools
|
|
41
60
|
- **Codebase search**: Use `mgrep "query"` (preferred over Grep/Glob)
|
|
42
61
|
- **Documentation lookup**: Use Context7 MCP for library/framework docs
|
|
43
62
|
- **Web search**: Use `mgrep --web "query"` for general web lookups
|
|
44
63
|
|
|
45
64
|
## Code Rules
|
|
46
|
-
-
|
|
65
|
+
{{#if aiNamingConventions}}- Naming: {{aiNamingConventions}}
|
|
66
|
+
{{/if}}- Explicit return types on functions
|
|
47
67
|
- No `any` - use `unknown` if truly unknown
|
|
48
68
|
- Early returns over nested conditionals
|
|
49
69
|
- Named exports, not default exports
|
|
50
70
|
- Path alias `@/` maps to `{{appDir}}/` root
|
|
51
|
-
- Follow patterns in existing
|
|
71
|
+
- Follow patterns in existing code
|
|
52
72
|
- 2-space indentation, single quotes
|
|
53
|
-
- PascalCase for components, `use` prefix for hooks
|
|
54
|
-
- kebab-case for folder names (e.g., `survey-editor`)
|
|
55
73
|
|
|
56
74
|
{{#if unitTest}}## Testing
|
|
57
75
|
- Framework: {{unitTest}}{{#if unitTestVersion}} {{unitTestVersion}}{{/if}}
|
|
58
|
-
-
|
|
59
|
-
- Run: `cd {{appDir}} && {{testCommand}}`
|
|
76
|
+
- Run: `{{testCommand}}`
|
|
60
77
|
- Each feature task should include tests
|
|
61
78
|
- Validation fails if tests fail
|
|
62
79
|
{{/if}}
|
|
@@ -71,30 +88,30 @@ Use `mcp__supabase__get_advisors` with type "security" to check RLS policies.
|
|
|
71
88
|
- After changes: validate, commit, push
|
|
72
89
|
|
|
73
90
|
## MCP Servers Available
|
|
74
|
-
- **
|
|
91
|
+
{{#if aiMcpEssential}}- **Essential**: {{aiMcpEssential}}
|
|
92
|
+
{{/if}}{{#if aiMcpRecommended}}- **Recommended**: {{aiMcpRecommended}}
|
|
93
|
+
{{/if}}- **Supabase**: Query DB, manage migrations, generate types
|
|
75
94
|
- **PostHog**: Analytics, feature flags, experiments
|
|
76
95
|
- **Playwright**: Browser automation for E2E testing
|
|
77
96
|
- Navigate: `browser_navigate`, `browser_snapshot`
|
|
78
97
|
- Interact: `browser_click`, `browser_type`, `browser_fill_form`
|
|
79
98
|
- Verify: `browser_wait_for`, `browser_console_messages`
|
|
80
99
|
- Debug: `browser_take_screenshot`
|
|
81
|
-
- **Codex CLI** (shell command, not MCP): PR review
|
|
82
|
-
- Command: `echo "prompt" | codex exec --full-auto -`
|
|
83
|
-
- For reviews: `codex review --base main` (interactive mode)
|
|
84
|
-
- Location: `/opt/homebrew/bin/codex`
|
|
85
|
-
- Use for: code review, PR feedback before merge
|
|
86
100
|
- **Context7**: Documentation lookup for libraries/frameworks
|
|
87
101
|
|
|
102
|
+
{{#if aiMissedTechnologies}}## May Also Use
|
|
103
|
+
{{aiMissedTechnologies}}
|
|
104
|
+
|
|
105
|
+
{{/if}}
|
|
88
106
|
## Quick Triggers
|
|
89
107
|
| Keywords | Action |
|
|
90
108
|
|----------|--------|
|
|
91
109
|
| type error, ts | Run typecheck |
|
|
92
|
-
| lint, format | Run lint --fix
|
|
110
|
+
| lint, format | Run lint --fix |
|
|
93
111
|
| deploy, build | Run full build |
|
|
94
|
-
| error, debug | Check
|
|
112
|
+
| error, debug | Check logs or console |
|
|
95
113
|
| database, table | Use Supabase MCP |
|
|
96
114
|
| e2e, browser test | Use Playwright MCP |
|
|
97
115
|
|
|
98
116
|
## Detailed Docs
|
|
99
|
-
- Architecture: `{{appDir}}/.claude/CLAUDE.md` - comprehensive codebase details
|
|
100
117
|
- Frontend: `.ralph/guides/FRONTEND.md` - design patterns, component usage, quality checklist
|
package/package.json
CHANGED
package/src/ai/enhancer.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { generateText, stepCountIs } from 'ai';
|
|
7
7
|
import type { ScanResult, DetectedStack, DetectionResult } from '../scanner/types.js';
|
|
8
|
-
import { getModel, type AIProvider, hasApiKey, getApiKeyEnvVar } from './providers.js';
|
|
8
|
+
import { getModel, type AIProvider, hasApiKey, getApiKeyEnvVar, isReasoningModel } from './providers.js';
|
|
9
9
|
import { SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt } from './prompts.js';
|
|
10
10
|
import { createExplorationTools } from './tools.js';
|
|
11
11
|
import { logger } from '../utils/logger.js';
|
|
@@ -199,10 +199,10 @@ export class AIEnhancer {
|
|
|
199
199
|
|
|
200
200
|
if (this.agentic) {
|
|
201
201
|
// Agentic mode: use tools to explore codebase
|
|
202
|
-
analysis = await this.enhanceAgentic(model, scanResult);
|
|
202
|
+
analysis = await this.enhanceAgentic(model, modelId, scanResult);
|
|
203
203
|
} else {
|
|
204
204
|
// Simple mode: just analyze detected stack
|
|
205
|
-
analysis = await this.enhanceSimple(model, scanResult);
|
|
205
|
+
analysis = await this.enhanceSimple(model, modelId, scanResult);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
if (!analysis) {
|
|
@@ -242,6 +242,7 @@ export class AIEnhancer {
|
|
|
242
242
|
*/
|
|
243
243
|
private async enhanceSimple(
|
|
244
244
|
model: ReturnType<typeof getModel>['model'],
|
|
245
|
+
modelId: string,
|
|
245
246
|
scanResult: ScanResult
|
|
246
247
|
): Promise<AIAnalysisResult | null> {
|
|
247
248
|
const prompt = createAnalysisPrompt(scanResult);
|
|
@@ -251,7 +252,8 @@ export class AIEnhancer {
|
|
|
251
252
|
system: SYSTEM_PROMPT,
|
|
252
253
|
prompt,
|
|
253
254
|
maxOutputTokens: 2000,
|
|
254
|
-
temperature
|
|
255
|
+
// Reasoning models don't support temperature
|
|
256
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
255
257
|
});
|
|
256
258
|
|
|
257
259
|
return parseAIResponse(text);
|
|
@@ -262,6 +264,7 @@ export class AIEnhancer {
|
|
|
262
264
|
*/
|
|
263
265
|
private async enhanceAgentic(
|
|
264
266
|
model: ReturnType<typeof getModel>['model'],
|
|
267
|
+
modelId: string,
|
|
265
268
|
scanResult: ScanResult
|
|
266
269
|
): Promise<AIAnalysisResult | null> {
|
|
267
270
|
const tools = createExplorationTools(scanResult.projectRoot);
|
|
@@ -305,7 +308,8 @@ When done exploring, output your final analysis as valid JSON matching this stru
|
|
|
305
308
|
tools,
|
|
306
309
|
stopWhen: stepCountIs(10),
|
|
307
310
|
maxOutputTokens: 4000,
|
|
308
|
-
temperature
|
|
311
|
+
// Reasoning models don't support temperature
|
|
312
|
+
...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
|
|
309
313
|
});
|
|
310
314
|
|
|
311
315
|
return parseAIResponse(text);
|
package/src/ai/providers.ts
CHANGED
|
@@ -166,3 +166,21 @@ export function getAvailableProvider(): AIProvider | null {
|
|
|
166
166
|
export function getApiKeyEnvVar(provider: AIProvider): string {
|
|
167
167
|
return API_KEY_ENV_VARS[provider];
|
|
168
168
|
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Models that don't support temperature parameter (reasoning models)
|
|
172
|
+
*/
|
|
173
|
+
const REASONING_MODELS = [
|
|
174
|
+
// OpenAI reasoning models
|
|
175
|
+
'o1', 'o1-mini', 'o1-preview',
|
|
176
|
+
'o3', 'o3-mini',
|
|
177
|
+
'gpt-5', 'gpt-5.1', 'gpt-5-mini',
|
|
178
|
+
'gpt-5.1-codex', 'gpt-5.1-codex-max',
|
|
179
|
+
];
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Check if a model is a reasoning model that doesn't support temperature
|
|
183
|
+
*/
|
|
184
|
+
export function isReasoningModel(modelId: string): boolean {
|
|
185
|
+
return REASONING_MODELS.some(m => modelId.startsWith(m));
|
|
186
|
+
}
|
|
@@ -39,7 +39,7 @@ export interface TemplateVariables {
|
|
|
39
39
|
stylingVersion: string;
|
|
40
40
|
stylingVariant: string;
|
|
41
41
|
|
|
42
|
-
// Commands (derived from package manager)
|
|
42
|
+
// Commands (derived from package manager or AI detected)
|
|
43
43
|
devCommand: string;
|
|
44
44
|
buildCommand: string;
|
|
45
45
|
testCommand: string;
|
|
@@ -50,6 +50,16 @@ export interface TemplateVariables {
|
|
|
50
50
|
// Paths
|
|
51
51
|
appDir: string;
|
|
52
52
|
|
|
53
|
+
// AI Analysis (optional - populated when AI enhancement is used)
|
|
54
|
+
aiEntryPoints: string;
|
|
55
|
+
aiKeyDirectories: string;
|
|
56
|
+
aiNamingConventions: string;
|
|
57
|
+
aiImplementationGuidelines: string;
|
|
58
|
+
aiMcpEssential: string;
|
|
59
|
+
aiMcpRecommended: string;
|
|
60
|
+
aiMissedTechnologies: string;
|
|
61
|
+
hasAiAnalysis: string;
|
|
62
|
+
|
|
53
63
|
// Custom variables
|
|
54
64
|
[key: string]: string;
|
|
55
65
|
}
|
|
@@ -93,6 +103,115 @@ function deriveCommands(packageManager: string): Pick<
|
|
|
93
103
|
};
|
|
94
104
|
}
|
|
95
105
|
|
|
106
|
+
/**
|
|
107
|
+
* AI analysis template variables
|
|
108
|
+
*/
|
|
109
|
+
type AiTemplateVars = Pick<TemplateVariables,
|
|
110
|
+
'hasAiAnalysis' | 'aiEntryPoints' | 'aiKeyDirectories' | 'aiNamingConventions' |
|
|
111
|
+
'aiImplementationGuidelines' | 'aiMcpEssential' | 'aiMcpRecommended' | 'aiMissedTechnologies'
|
|
112
|
+
>;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Format AI analysis data for templates
|
|
116
|
+
*/
|
|
117
|
+
function formatAiAnalysisForTemplates(scanResult: ScanResult): AiTemplateVars {
|
|
118
|
+
// Check if this is an EnhancedScanResult with aiAnalysis
|
|
119
|
+
const aiAnalysis = (scanResult as { aiAnalysis?: {
|
|
120
|
+
projectContext?: {
|
|
121
|
+
entryPoints?: string[];
|
|
122
|
+
keyDirectories?: Record<string, string>;
|
|
123
|
+
namingConventions?: string;
|
|
124
|
+
};
|
|
125
|
+
commands?: Record<string, string>;
|
|
126
|
+
implementationGuidelines?: string[];
|
|
127
|
+
mcpServers?: {
|
|
128
|
+
essential?: string[];
|
|
129
|
+
recommended?: string[];
|
|
130
|
+
};
|
|
131
|
+
possibleMissedTechnologies?: string[];
|
|
132
|
+
} }).aiAnalysis;
|
|
133
|
+
|
|
134
|
+
if (!aiAnalysis) {
|
|
135
|
+
return {
|
|
136
|
+
hasAiAnalysis: '',
|
|
137
|
+
aiEntryPoints: '',
|
|
138
|
+
aiKeyDirectories: '',
|
|
139
|
+
aiNamingConventions: '',
|
|
140
|
+
aiImplementationGuidelines: '',
|
|
141
|
+
aiMcpEssential: '',
|
|
142
|
+
aiMcpRecommended: '',
|
|
143
|
+
aiMissedTechnologies: '',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Format entry points as bullet list
|
|
148
|
+
const entryPoints = aiAnalysis.projectContext?.entryPoints || [];
|
|
149
|
+
const aiEntryPoints = entryPoints.length > 0
|
|
150
|
+
? entryPoints.map(e => `- \`${e}\``).join('\n')
|
|
151
|
+
: '';
|
|
152
|
+
|
|
153
|
+
// Format key directories as table rows
|
|
154
|
+
const keyDirs = aiAnalysis.projectContext?.keyDirectories || {};
|
|
155
|
+
const aiKeyDirectories = Object.keys(keyDirs).length > 0
|
|
156
|
+
? Object.entries(keyDirs).map(([dir, purpose]) => `| \`${dir}/\` | ${purpose} |`).join('\n')
|
|
157
|
+
: '';
|
|
158
|
+
|
|
159
|
+
// Naming conventions
|
|
160
|
+
const aiNamingConventions = aiAnalysis.projectContext?.namingConventions || '';
|
|
161
|
+
|
|
162
|
+
// Implementation guidelines as bullet list
|
|
163
|
+
const guidelines = aiAnalysis.implementationGuidelines || [];
|
|
164
|
+
const aiImplementationGuidelines = guidelines.length > 0
|
|
165
|
+
? guidelines.map(g => `- ${g}`).join('\n')
|
|
166
|
+
: '';
|
|
167
|
+
|
|
168
|
+
// MCP servers
|
|
169
|
+
const aiMcpEssential = (aiAnalysis.mcpServers?.essential || []).join(', ');
|
|
170
|
+
const aiMcpRecommended = (aiAnalysis.mcpServers?.recommended || []).join(', ');
|
|
171
|
+
|
|
172
|
+
// Missed technologies
|
|
173
|
+
const aiMissedTechnologies = (aiAnalysis.possibleMissedTechnologies || []).join(', ');
|
|
174
|
+
|
|
175
|
+
return {
|
|
176
|
+
hasAiAnalysis: 'true',
|
|
177
|
+
aiEntryPoints,
|
|
178
|
+
aiKeyDirectories,
|
|
179
|
+
aiNamingConventions,
|
|
180
|
+
aiImplementationGuidelines,
|
|
181
|
+
aiMcpEssential,
|
|
182
|
+
aiMcpRecommended,
|
|
183
|
+
aiMissedTechnologies,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Extract AI-detected commands or fall back to derived commands
|
|
189
|
+
*/
|
|
190
|
+
function getCommands(
|
|
191
|
+
scanResult: ScanResult,
|
|
192
|
+
packageManager: string
|
|
193
|
+
): Pick<TemplateVariables, 'devCommand' | 'buildCommand' | 'testCommand' | 'lintCommand' | 'typecheckCommand' | 'formatCommand'> {
|
|
194
|
+
// Check for AI-detected commands
|
|
195
|
+
const aiCommands = (scanResult as { aiAnalysis?: { commands?: Record<string, string> } }).aiAnalysis?.commands;
|
|
196
|
+
|
|
197
|
+
// Derive default commands from package manager
|
|
198
|
+
const derived = deriveCommands(packageManager);
|
|
199
|
+
|
|
200
|
+
if (!aiCommands) {
|
|
201
|
+
return derived;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// Use AI-detected commands where available, fall back to derived
|
|
205
|
+
return {
|
|
206
|
+
devCommand: aiCommands.dev || derived.devCommand,
|
|
207
|
+
buildCommand: aiCommands.build || derived.buildCommand,
|
|
208
|
+
testCommand: aiCommands.test || derived.testCommand,
|
|
209
|
+
lintCommand: aiCommands.lint || derived.lintCommand,
|
|
210
|
+
typecheckCommand: aiCommands.typecheck || derived.typecheckCommand,
|
|
211
|
+
formatCommand: aiCommands.format || derived.formatCommand,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
96
215
|
/**
|
|
97
216
|
* Extract template variables from scan result
|
|
98
217
|
*/
|
|
@@ -122,11 +241,24 @@ export function extractVariables(scanResult: ScanResult, customVars: Record<stri
|
|
|
122
241
|
const stylingVersion = stack.styling?.version || DEFAULT_VARIABLES.stylingVersion!;
|
|
123
242
|
const stylingVariant = stack.styling?.variant || DEFAULT_VARIABLES.stylingVariant!;
|
|
124
243
|
|
|
125
|
-
//
|
|
126
|
-
const commands =
|
|
127
|
-
|
|
128
|
-
//
|
|
129
|
-
const
|
|
244
|
+
// Get commands (AI-detected or derived)
|
|
245
|
+
const commands = getCommands(scanResult, packageManager);
|
|
246
|
+
|
|
247
|
+
// Extract AI analysis data
|
|
248
|
+
const aiData = formatAiAnalysisForTemplates(scanResult);
|
|
249
|
+
|
|
250
|
+
// Determine app directory - use AI entry points if available
|
|
251
|
+
let appDir = 'src';
|
|
252
|
+
if (frameworkVariant === 'app-router' || framework.toLowerCase().includes('next')) {
|
|
253
|
+
appDir = 'app';
|
|
254
|
+
} else if (aiData.aiEntryPoints) {
|
|
255
|
+
// Try to extract common directory from entry points
|
|
256
|
+
const entryPoints = (scanResult as { aiAnalysis?: { projectContext?: { entryPoints?: string[] } } })
|
|
257
|
+
.aiAnalysis?.projectContext?.entryPoints || [];
|
|
258
|
+
if (entryPoints.length > 0 && entryPoints[0].startsWith('src/')) {
|
|
259
|
+
appDir = 'src';
|
|
260
|
+
}
|
|
261
|
+
}
|
|
130
262
|
|
|
131
263
|
return {
|
|
132
264
|
projectName,
|
|
@@ -145,6 +277,7 @@ export function extractVariables(scanResult: ScanResult, customVars: Record<stri
|
|
|
145
277
|
stylingVariant,
|
|
146
278
|
appDir,
|
|
147
279
|
...commands,
|
|
280
|
+
...aiData,
|
|
148
281
|
...customVars,
|
|
149
282
|
};
|
|
150
283
|
}
|
|
@@ -3,7 +3,20 @@
|
|
|
3
3
|
## Stack
|
|
4
4
|
{{framework}}{{#if frameworkVersion}} {{frameworkVersion}}{{/if}}{{#if frameworkVariant}} ({{frameworkVariant}}){{/if}}, TypeScript, {{styling || css}}{{#if unitTest}}, {{unitTest}}{{/if}}{{#if e2eTest}}, {{e2eTest}}{{/if}}
|
|
5
5
|
|
|
6
|
+
{{#if aiEntryPoints}}## Entry Points
|
|
7
|
+
{{aiEntryPoints}}
|
|
8
|
+
|
|
9
|
+
{{/if}}
|
|
6
10
|
## Commands
|
|
11
|
+
{{#if hasAiAnalysis}}
|
|
12
|
+
| Action | Command |
|
|
13
|
+
|--------|---------|
|
|
14
|
+
| Dev | `{{devCommand}}` |
|
|
15
|
+
| Build | `{{buildCommand}}` |
|
|
16
|
+
| Test | `{{testCommand}}` |
|
|
17
|
+
| Lint | `{{lintCommand}}` |
|
|
18
|
+
| Typecheck | `{{typecheckCommand}}` |
|
|
19
|
+
{{else}}
|
|
7
20
|
All commands run from `{{appDir}}/` directory:
|
|
8
21
|
|
|
9
22
|
| Action | Command |
|
|
@@ -16,19 +29,20 @@ All commands run from `{{appDir}}/` directory:
|
|
|
16
29
|
| Typecheck | `cd {{appDir}} && {{typecheckCommand}}` |
|
|
17
30
|
{{#if unitTest}}| Test | `cd {{appDir}} && {{testCommand}}` |
|
|
18
31
|
| Test watch | `cd {{appDir}} && {{testCommand}} -- --watch` |{{/if}}
|
|
32
|
+
{{/if}}
|
|
19
33
|
|
|
20
34
|
## Validation (run before commit)
|
|
21
35
|
```bash
|
|
22
|
-
|
|
36
|
+
{{lintCommand}} && {{typecheckCommand}}{{#if unitTest}} && {{testCommand}}{{/if}} && {{buildCommand}}
|
|
23
37
|
```
|
|
24
38
|
|
|
25
|
-
##
|
|
26
|
-
```bash
|
|
27
|
-
cd {{appDir}} && {{packageManager}} audit # Check vulnerable dependencies
|
|
28
|
-
```
|
|
29
|
-
Then review changes against @.ralph/guides/SECURITY.md checklist.
|
|
30
|
-
Use `mcp__supabase__get_advisors` with type "security" to check RLS policies.
|
|
39
|
+
{{#if aiKeyDirectories}}## Project Structure
|
|
31
40
|
|
|
41
|
+
| Directory | Purpose |
|
|
42
|
+
|-----------|---------|
|
|
43
|
+
{{aiKeyDirectories}}
|
|
44
|
+
|
|
45
|
+
{{else}}
|
|
32
46
|
## Patterns
|
|
33
47
|
- Pages: `{{appDir}}/app/` - Next.js App Router
|
|
34
48
|
- Components: `{{appDir}}/components/` - see ui/, ai-elements/, survey-editor/
|
|
@@ -36,27 +50,30 @@ Use `mcp__supabase__get_advisors` with type "security" to check RLS policies.
|
|
|
36
50
|
- Store: `{{appDir}}/store/` - State management
|
|
37
51
|
- Server Actions: `{{appDir}}/app/actions.ts` and `{{appDir}}/app/actions/`
|
|
38
52
|
- Libs: `{{appDir}}/lib/` - utilities and integrations
|
|
53
|
+
{{/if}}
|
|
54
|
+
|
|
55
|
+
{{#if aiImplementationGuidelines}}## Implementation Guidelines
|
|
56
|
+
{{aiImplementationGuidelines}}
|
|
39
57
|
|
|
58
|
+
{{/if}}
|
|
40
59
|
## Search Tools
|
|
41
60
|
- **Codebase search**: Use `mgrep "query"` (preferred over Grep/Glob)
|
|
42
61
|
- **Documentation lookup**: Use Context7 MCP for library/framework docs
|
|
43
62
|
- **Web search**: Use `mgrep --web "query"` for general web lookups
|
|
44
63
|
|
|
45
64
|
## Code Rules
|
|
46
|
-
-
|
|
65
|
+
{{#if aiNamingConventions}}- Naming: {{aiNamingConventions}}
|
|
66
|
+
{{/if}}- Explicit return types on functions
|
|
47
67
|
- No `any` - use `unknown` if truly unknown
|
|
48
68
|
- Early returns over nested conditionals
|
|
49
69
|
- Named exports, not default exports
|
|
50
70
|
- Path alias `@/` maps to `{{appDir}}/` root
|
|
51
|
-
- Follow patterns in existing
|
|
71
|
+
- Follow patterns in existing code
|
|
52
72
|
- 2-space indentation, single quotes
|
|
53
|
-
- PascalCase for components, `use` prefix for hooks
|
|
54
|
-
- kebab-case for folder names (e.g., `survey-editor`)
|
|
55
73
|
|
|
56
74
|
{{#if unitTest}}## Testing
|
|
57
75
|
- Framework: {{unitTest}}{{#if unitTestVersion}} {{unitTestVersion}}{{/if}}
|
|
58
|
-
-
|
|
59
|
-
- Run: `cd {{appDir}} && {{testCommand}}`
|
|
76
|
+
- Run: `{{testCommand}}`
|
|
60
77
|
- Each feature task should include tests
|
|
61
78
|
- Validation fails if tests fail
|
|
62
79
|
{{/if}}
|
|
@@ -71,30 +88,30 @@ Use `mcp__supabase__get_advisors` with type "security" to check RLS policies.
|
|
|
71
88
|
- After changes: validate, commit, push
|
|
72
89
|
|
|
73
90
|
## MCP Servers Available
|
|
74
|
-
- **
|
|
91
|
+
{{#if aiMcpEssential}}- **Essential**: {{aiMcpEssential}}
|
|
92
|
+
{{/if}}{{#if aiMcpRecommended}}- **Recommended**: {{aiMcpRecommended}}
|
|
93
|
+
{{/if}}- **Supabase**: Query DB, manage migrations, generate types
|
|
75
94
|
- **PostHog**: Analytics, feature flags, experiments
|
|
76
95
|
- **Playwright**: Browser automation for E2E testing
|
|
77
96
|
- Navigate: `browser_navigate`, `browser_snapshot`
|
|
78
97
|
- Interact: `browser_click`, `browser_type`, `browser_fill_form`
|
|
79
98
|
- Verify: `browser_wait_for`, `browser_console_messages`
|
|
80
99
|
- Debug: `browser_take_screenshot`
|
|
81
|
-
- **Codex CLI** (shell command, not MCP): PR review
|
|
82
|
-
- Command: `echo "prompt" | codex exec --full-auto -`
|
|
83
|
-
- For reviews: `codex review --base main` (interactive mode)
|
|
84
|
-
- Location: `/opt/homebrew/bin/codex`
|
|
85
|
-
- Use for: code review, PR feedback before merge
|
|
86
100
|
- **Context7**: Documentation lookup for libraries/frameworks
|
|
87
101
|
|
|
102
|
+
{{#if aiMissedTechnologies}}## May Also Use
|
|
103
|
+
{{aiMissedTechnologies}}
|
|
104
|
+
|
|
105
|
+
{{/if}}
|
|
88
106
|
## Quick Triggers
|
|
89
107
|
| Keywords | Action |
|
|
90
108
|
|----------|--------|
|
|
91
109
|
| type error, ts | Run typecheck |
|
|
92
|
-
| lint, format | Run lint --fix
|
|
110
|
+
| lint, format | Run lint --fix |
|
|
93
111
|
| deploy, build | Run full build |
|
|
94
|
-
| error, debug | Check
|
|
112
|
+
| error, debug | Check logs or console |
|
|
95
113
|
| database, table | Use Supabase MCP |
|
|
96
114
|
| e2e, browser test | Use Playwright MCP |
|
|
97
115
|
|
|
98
116
|
## Detailed Docs
|
|
99
|
-
- Architecture: `{{appDir}}/.claude/CLAUDE.md` - comprehensive codebase details
|
|
100
117
|
- Frontend: `.ralph/guides/FRONTEND.md` - design patterns, component usage, quality checklist
|