@mind-fold/open-flow 0.1.4 ā 0.1.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,UAAU,WAAW;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,UAAU,WAAW;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJ9D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -11,19 +11,9 @@ export async function init(options) {
|
|
|
11
11
|
console.log(chalk.cyan("\nš open-flow - AI-assisted development workflow initializer\n"));
|
|
12
12
|
// Check if already initialized
|
|
13
13
|
const workflowDir = path.join(cwd, "workflow");
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
type: "confirm",
|
|
18
|
-
name: "overwrite",
|
|
19
|
-
message: chalk.yellow("workflow/ directory already exists. Overwrite?"),
|
|
20
|
-
default: false,
|
|
21
|
-
},
|
|
22
|
-
]);
|
|
23
|
-
if (!overwrite) {
|
|
24
|
-
console.log(chalk.gray("Initialization cancelled."));
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
14
|
+
const workflowExists = fs.existsSync(workflowDir);
|
|
15
|
+
if (workflowExists) {
|
|
16
|
+
console.log(chalk.yellow("ā ļø workflow/ directory already exists, skipping..."));
|
|
27
17
|
}
|
|
28
18
|
let tools;
|
|
29
19
|
if (options.yes) {
|
|
@@ -33,10 +23,12 @@ export async function init(options) {
|
|
|
33
23
|
else if (options.cursor || options.claude) {
|
|
34
24
|
// Use flags
|
|
35
25
|
tools = [];
|
|
36
|
-
if (options.cursor)
|
|
26
|
+
if (options.cursor) {
|
|
37
27
|
tools.push("cursor");
|
|
38
|
-
|
|
28
|
+
}
|
|
29
|
+
if (options.claude) {
|
|
39
30
|
tools.push("claude");
|
|
31
|
+
}
|
|
40
32
|
}
|
|
41
33
|
else {
|
|
42
34
|
// Interactive mode
|
|
@@ -58,19 +50,33 @@ export async function init(options) {
|
|
|
58
50
|
return;
|
|
59
51
|
}
|
|
60
52
|
console.log(chalk.gray(`\nConfiguring: ${tools.join(", ")}\n`));
|
|
61
|
-
// Create workflow structure
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
// Create workflow structure (skip if exists)
|
|
54
|
+
if (!workflowExists) {
|
|
55
|
+
console.log(chalk.blue("š Creating workflow structure..."));
|
|
56
|
+
await createWorkflowStructure(cwd);
|
|
57
|
+
}
|
|
58
|
+
// Configure selected tools (skip if exists)
|
|
65
59
|
if (tools.includes("cursor")) {
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
const cursorDir = path.join(cwd, ".cursor/commands");
|
|
61
|
+
if (fs.existsSync(cursorDir)) {
|
|
62
|
+
console.log(chalk.yellow("ā ļø .cursor/commands/ already exists, skipping..."));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log(chalk.blue("š Configuring Cursor commands..."));
|
|
66
|
+
await configureCursor(cwd);
|
|
67
|
+
}
|
|
68
68
|
}
|
|
69
69
|
if (tools.includes("claude")) {
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
const claudeDir = path.join(cwd, ".claude/commands");
|
|
71
|
+
if (fs.existsSync(claudeDir)) {
|
|
72
|
+
console.log(chalk.yellow("ā ļø .claude/commands/ already exists, skipping..."));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log(chalk.blue("š Configuring Claude Code commands..."));
|
|
76
|
+
await configureClaude(cwd);
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
|
-
// Create root files
|
|
79
|
+
// Create root files (skip if exists)
|
|
74
80
|
await createRootFiles(cwd);
|
|
75
81
|
// Initialize developer identity if specified
|
|
76
82
|
let developerInitialized = false;
|
|
@@ -107,6 +113,8 @@ export async function init(options) {
|
|
|
107
113
|
chalk.gray(" command in your AI tool to start a session\n"));
|
|
108
114
|
}
|
|
109
115
|
async function createRootFiles(cwd) {
|
|
116
|
+
const initAgentPath = path.join(cwd, "init-agent.md");
|
|
117
|
+
const agentsPath = path.join(cwd, "AGENTS.md");
|
|
110
118
|
// Create init-agent.md
|
|
111
119
|
const initAgentContent = `# AI Agent Initialization Guide
|
|
112
120
|
|
|
@@ -198,7 +206,14 @@ cat workflow/flow.md
|
|
|
198
206
|
|
|
199
207
|
**Ready to start? Follow the Quick Start section above!**
|
|
200
208
|
`;
|
|
201
|
-
|
|
209
|
+
// Write init-agent.md (skip if exists)
|
|
210
|
+
if (!fs.existsSync(initAgentPath)) {
|
|
211
|
+
fs.writeFileSync(initAgentPath, initAgentContent);
|
|
212
|
+
console.log(chalk.blue("š Created init-agent.md"));
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
console.log(chalk.yellow("ā ļø init-agent.md already exists, skipping..."));
|
|
216
|
+
}
|
|
202
217
|
// Create AGENTS.md
|
|
203
218
|
const agentsContent = `<!-- OPEN-FLOW:START -->
|
|
204
219
|
# Open-Flow Instructions
|
|
@@ -219,6 +234,13 @@ Keep this managed block so 'open-flow update' can refresh the instructions.
|
|
|
219
234
|
|
|
220
235
|
<!-- OPEN-FLOW:END -->
|
|
221
236
|
`;
|
|
222
|
-
|
|
237
|
+
// Write AGENTS.md (skip if exists)
|
|
238
|
+
if (!fs.existsSync(agentsPath)) {
|
|
239
|
+
fs.writeFileSync(agentsPath, agentsContent);
|
|
240
|
+
console.log(chalk.blue("š Created AGENTS.md"));
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
console.log(chalk.yellow("ā ļø AGENTS.md already exists, skipping..."));
|
|
244
|
+
}
|
|
223
245
|
}
|
|
224
246
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAcvE,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,CACT,iEAAiE,CACjE,CACD,CAAC;IAEF,+BAA+B;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/configurators/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/configurators/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAUtD"}
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export function getCommandTemplates() {
|
|
6
6
|
return {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"init-agent": getInitAgentTemplate(),
|
|
8
|
+
"check-frontend": getCheckFrontendTemplate(),
|
|
9
|
+
"check-backend": getCheckBackendTemplate(),
|
|
10
|
+
"record-agent-flow": getRecordAgentFlowTemplate(),
|
|
11
|
+
"onboard-developer": getOnboardDeveloperTemplate(),
|
|
12
|
+
"generate-frontend-structure": getGenerateFrontendStructureTemplate(),
|
|
13
|
+
"generate-backend-structure": getGenerateBackendStructureTemplate(),
|
|
12
14
|
};
|
|
13
15
|
}
|
|
14
16
|
function getInitAgentTemplate() {
|
|
@@ -94,4 +96,544 @@ Key points to emphasize:
|
|
|
94
96
|
- Read guidelines before coding (mandatory)
|
|
95
97
|
`;
|
|
96
98
|
}
|
|
99
|
+
function getGenerateFrontendStructureTemplate() {
|
|
100
|
+
return `# Generate Frontend Structure Guidelines
|
|
101
|
+
|
|
102
|
+
## Task Description
|
|
103
|
+
|
|
104
|
+
Scan the project's frontend code, analyze existing code patterns and tech stack, then auto-generate \`index.md\` (navigation index) and \`doc.md\` (detailed guidelines) documents.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Execution Steps
|
|
109
|
+
|
|
110
|
+
### Step 1: Identify Frontend Directory
|
|
111
|
+
|
|
112
|
+
Scan these possible frontend directories to determine the main frontend code location:
|
|
113
|
+
|
|
114
|
+
\`\`\`bash
|
|
115
|
+
# Common frontend directories
|
|
116
|
+
ls -la apps/web/ 2>/dev/null || \\
|
|
117
|
+
ls -la src/ 2>/dev/null || \\
|
|
118
|
+
ls -la frontend/ 2>/dev/null || \\
|
|
119
|
+
ls -la client/ 2>/dev/null || \\
|
|
120
|
+
ls -la packages/web/ 2>/dev/null
|
|
121
|
+
\`\`\`
|
|
122
|
+
|
|
123
|
+
### Step 2: Identify Tech Stack
|
|
124
|
+
|
|
125
|
+
Analyze \`package.json\` and code files to identify:
|
|
126
|
+
|
|
127
|
+
**Frameworks and Libraries**:
|
|
128
|
+
- [ ] Framework: Next.js / React / Vue / Svelte / Angular
|
|
129
|
+
- [ ] State Management: React Query / Zustand / Redux / Jotai / Pinia
|
|
130
|
+
- [ ] UI Library: Shadcn / Radix / MUI / Ant Design / Chakra
|
|
131
|
+
- [ ] Styling: Tailwind / CSS Modules / Styled Components / Sass
|
|
132
|
+
- [ ] Types: TypeScript / JavaScript
|
|
133
|
+
- [ ] API Client: tRPC / oRPC / REST / GraphQL
|
|
134
|
+
|
|
135
|
+
**Toolchain**:
|
|
136
|
+
- [ ] Build Tool: Vite / Webpack / Turbopack
|
|
137
|
+
- [ ] Package Manager: pnpm / npm / yarn / bun
|
|
138
|
+
- [ ] Linter: Biome / ESLint / Prettier
|
|
139
|
+
|
|
140
|
+
### Step 3: Analyze Code Patterns
|
|
141
|
+
|
|
142
|
+
Scan frontend code to extract the following patterns:
|
|
143
|
+
|
|
144
|
+
**Directory Structure**:
|
|
145
|
+
\`\`\`bash
|
|
146
|
+
# List main directory structure
|
|
147
|
+
find [frontend-dir] -type d -maxdepth 3 | head -50
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
**Component Patterns**:
|
|
151
|
+
- File naming convention (PascalCase / kebab-case)
|
|
152
|
+
- Component file structure (single file / folder)
|
|
153
|
+
- Export style (default / named)
|
|
154
|
+
|
|
155
|
+
**Hook Patterns**:
|
|
156
|
+
- Naming convention (useXxx)
|
|
157
|
+
- Query Hook patterns
|
|
158
|
+
- Mutation Hook patterns
|
|
159
|
+
- Custom Hook patterns
|
|
160
|
+
|
|
161
|
+
**Type Definition Patterns**:
|
|
162
|
+
- Type file locations
|
|
163
|
+
- Type import style
|
|
164
|
+
- Backend type reuse patterns
|
|
165
|
+
|
|
166
|
+
**API Call Patterns**:
|
|
167
|
+
- API client initialization
|
|
168
|
+
- Request/Response handling
|
|
169
|
+
- Error handling approach
|
|
170
|
+
|
|
171
|
+
**State Management Patterns**:
|
|
172
|
+
- Global state
|
|
173
|
+
- Local state
|
|
174
|
+
- URL state synchronization
|
|
175
|
+
|
|
176
|
+
### Step 4: Generate Documents
|
|
177
|
+
|
|
178
|
+
Generate two files in \`workflow/structure/frontend/\` directory:
|
|
179
|
+
|
|
180
|
+
#### 4.1 Generate \`index.md\` (Index File)
|
|
181
|
+
|
|
182
|
+
The index file should include:
|
|
183
|
+
|
|
184
|
+
\`\`\`markdown
|
|
185
|
+
# Frontend Development Guidelines Index
|
|
186
|
+
|
|
187
|
+
> **Full Documentation**: See \`./doc.md\` for detailed guidelines
|
|
188
|
+
|
|
189
|
+
This index helps you quickly locate the guidelines you need based on your task type.
|
|
190
|
+
|
|
191
|
+
## Quick Navigation
|
|
192
|
+
|
|
193
|
+
| Development Task | Section to Read | Line Range |
|
|
194
|
+
|-----------------|-----------------|------------|
|
|
195
|
+
| **New feature module** | Directory Structure | L5-XX |
|
|
196
|
+
| **Write Query Hook** | Hook Guidelines > Query Hook | LXX-XX |
|
|
197
|
+
| **Write Mutation Hook** | Hook Guidelines > Mutation Hook | LXX-XX |
|
|
198
|
+
| **API calls** | API Call Guidelines | LXX-XX |
|
|
199
|
+
| **State management** | State Management Guidelines | LXX-XX |
|
|
200
|
+
| **Write component** | Component Guidelines | LXX-XX |
|
|
201
|
+
| **Performance optimization** | Performance Guidelines | LXX-XX |
|
|
202
|
+
| **Code quality check** | Code Quality Guidelines | LXX-XX |
|
|
203
|
+
|
|
204
|
+
## By Development Scenario
|
|
205
|
+
|
|
206
|
+
### Scenario 1: Create a new Query Hook
|
|
207
|
+
|
|
208
|
+
**Required Reading**:
|
|
209
|
+
- Type Safety > Backend Contract Types (LXX-XX)
|
|
210
|
+
- Hook Guidelines > Query Hook (LXX-XX)
|
|
211
|
+
|
|
212
|
+
### Scenario 2: Create a new UI Component
|
|
213
|
+
|
|
214
|
+
**Required Reading**:
|
|
215
|
+
- Component Guidelines > Component Structure (LXX-XX)
|
|
216
|
+
- Component Guidelines > Styling Standards (LXX-XX)
|
|
217
|
+
|
|
218
|
+
[... add more scenarios based on project needs ...]
|
|
219
|
+
|
|
220
|
+
## Core Rules Quick Reference
|
|
221
|
+
|
|
222
|
+
| Rule | Location |
|
|
223
|
+
|------|----------|
|
|
224
|
+
| Import types from backend, don't redefine | LXX-XX |
|
|
225
|
+
| No any type allowed | LXX-XX |
|
|
226
|
+
| [other core rules...] | LXX-XX |
|
|
227
|
+
|
|
228
|
+
## Reference Example Files
|
|
229
|
+
|
|
230
|
+
| Feature | Reference File |
|
|
231
|
+
|---------|----------------|
|
|
232
|
+
| Query Hook | \`[path]\` |
|
|
233
|
+
| Mutation Hook | \`[path]\` |
|
|
234
|
+
| Component | \`[path]\` |
|
|
235
|
+
\`\`\`
|
|
236
|
+
|
|
237
|
+
#### 4.2 Generate \`doc.md\` (Detailed Guidelines)
|
|
238
|
+
|
|
239
|
+
Detailed guidelines should include these sections (adjust based on project):
|
|
240
|
+
|
|
241
|
+
\`\`\`markdown
|
|
242
|
+
# Frontend Development Guidelines
|
|
243
|
+
|
|
244
|
+
These guidelines define the development standards and best practices for [Project Name] frontend modules.
|
|
245
|
+
|
|
246
|
+
## š Directory Structure Guidelines
|
|
247
|
+
|
|
248
|
+
### Module Organization
|
|
249
|
+
[Describe directory structure with tree diagram code block]
|
|
250
|
+
|
|
251
|
+
**Reference Example**:
|
|
252
|
+
- \`[path]\` - [description]
|
|
253
|
+
|
|
254
|
+
## šÆ Type Safety Guidelines
|
|
255
|
+
|
|
256
|
+
### 1. Backend Contract Types vs Frontend View Models
|
|
257
|
+
|
|
258
|
+
#### ā
Correct Approach - Import Types from Backend
|
|
259
|
+
[code example]
|
|
260
|
+
|
|
261
|
+
#### ā Wrong Approach
|
|
262
|
+
[anti-pattern code example]
|
|
263
|
+
|
|
264
|
+
## šŖ Hook Development Guidelines
|
|
265
|
+
|
|
266
|
+
### 1. Query Hook Standards
|
|
267
|
+
|
|
268
|
+
#### ā
Correct Query Hook Pattern
|
|
269
|
+
[code example]
|
|
270
|
+
|
|
271
|
+
### 2. Mutation Hook Standards
|
|
272
|
+
|
|
273
|
+
#### ā
Correct Mutation Hook Pattern
|
|
274
|
+
[code example]
|
|
275
|
+
|
|
276
|
+
## š API Call Guidelines
|
|
277
|
+
|
|
278
|
+
### Basic Usage
|
|
279
|
+
[code example]
|
|
280
|
+
|
|
281
|
+
## šļø State Management Guidelines
|
|
282
|
+
|
|
283
|
+
### 1. URL State Management
|
|
284
|
+
[code example]
|
|
285
|
+
|
|
286
|
+
### 2. React Context Standards
|
|
287
|
+
[code example]
|
|
288
|
+
|
|
289
|
+
## šØ Component Development Guidelines
|
|
290
|
+
|
|
291
|
+
### 1. Component Structure
|
|
292
|
+
[code example]
|
|
293
|
+
|
|
294
|
+
### 2. Styling Standards
|
|
295
|
+
[code example]
|
|
296
|
+
|
|
297
|
+
## ā” Performance Optimization Guidelines
|
|
298
|
+
|
|
299
|
+
[performance rules]
|
|
300
|
+
|
|
301
|
+
## š Code Quality Guidelines
|
|
302
|
+
|
|
303
|
+
### Lint and Formatting
|
|
304
|
+
[tool configuration and usage]
|
|
305
|
+
|
|
306
|
+
## ā
Checklist
|
|
307
|
+
|
|
308
|
+
- [ ] Code passes lint check
|
|
309
|
+
- [ ] Type check passes
|
|
310
|
+
- [ ] [other check items...]
|
|
311
|
+
|
|
312
|
+
## š Reference Examples
|
|
313
|
+
|
|
314
|
+
| Feature | Reference File |
|
|
315
|
+
|---------|----------------|
|
|
316
|
+
| [Feature1] | \`[path]\` |
|
|
317
|
+
\`\`\`
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Output Requirements
|
|
322
|
+
|
|
323
|
+
1. **Create directory**: \`mkdir -p workflow/structure/frontend\`
|
|
324
|
+
2. **Generate index.md**: Include navigation tables
|
|
325
|
+
3. **Generate doc.md**: Include complete detailed guidelines
|
|
326
|
+
4. **Update line numbers**: Ensure index.md line numbers match doc.md
|
|
327
|
+
5. **Use actual project code**: Examples should come from real project files
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Completion Confirmation
|
|
332
|
+
|
|
333
|
+
- [ ] \`index.md\` created with navigation table
|
|
334
|
+
- [ ] \`doc.md\` created with detailed guidelines
|
|
335
|
+
- [ ] Line numbers correctly annotated
|
|
336
|
+
- [ ] Example code from actual project files
|
|
337
|
+
- [ ] Covers all major patterns used in project
|
|
338
|
+
|
|
339
|
+
Report: "Frontend structure guidelines generated, please check \`workflow/structure/frontend/\` directory"
|
|
340
|
+
`;
|
|
341
|
+
}
|
|
342
|
+
function getGenerateBackendStructureTemplate() {
|
|
343
|
+
return `# Generate Backend Structure Guidelines
|
|
344
|
+
|
|
345
|
+
## Task Description
|
|
346
|
+
|
|
347
|
+
Scan the project's backend code, analyze existing code patterns and tech stack, then auto-generate \`index.md\` (navigation index) and \`doc.md\` (detailed guidelines) documents.
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Execution Steps
|
|
352
|
+
|
|
353
|
+
### Step 1: Identify Backend Directory
|
|
354
|
+
|
|
355
|
+
Scan these possible backend directories to determine the main backend code location:
|
|
356
|
+
|
|
357
|
+
\`\`\`bash
|
|
358
|
+
# Common backend directories
|
|
359
|
+
ls -la packages/api/ 2>/dev/null || \\
|
|
360
|
+
ls -la apps/api/ 2>/dev/null || \\
|
|
361
|
+
ls -la server/ 2>/dev/null || \\
|
|
362
|
+
ls -la backend/ 2>/dev/null || \\
|
|
363
|
+
ls -la src/api/ 2>/dev/null || \\
|
|
364
|
+
ls -la api/ 2>/dev/null
|
|
365
|
+
\`\`\`
|
|
366
|
+
|
|
367
|
+
### Step 2: Identify Tech Stack
|
|
368
|
+
|
|
369
|
+
Analyze \`package.json\` and code files to identify:
|
|
370
|
+
|
|
371
|
+
**Frameworks and Libraries**:
|
|
372
|
+
- [ ] Runtime: Node.js / Bun / Deno
|
|
373
|
+
- [ ] Framework: Express / Fastify / Hono / Nest.js / Next.js API
|
|
374
|
+
- [ ] ORM: Drizzle / Prisma / TypeORM / Sequelize / Knex
|
|
375
|
+
- [ ] Database: PostgreSQL / MySQL / MongoDB / SQLite
|
|
376
|
+
- [ ] Validation: Zod / Yup / Joi / class-validator
|
|
377
|
+
- [ ] API Style: REST / GraphQL / tRPC / oRPC / gRPC
|
|
378
|
+
- [ ] Authentication: better-auth / next-auth / passport / jwt
|
|
379
|
+
|
|
380
|
+
**Toolchain**:
|
|
381
|
+
- [ ] Types: TypeScript / JavaScript
|
|
382
|
+
- [ ] Linter: Biome / ESLint
|
|
383
|
+
- [ ] Testing: Vitest / Jest / Mocha
|
|
384
|
+
|
|
385
|
+
### Step 3: Analyze Code Patterns
|
|
386
|
+
|
|
387
|
+
Scan backend code to extract the following patterns:
|
|
388
|
+
|
|
389
|
+
**Directory Structure**:
|
|
390
|
+
\`\`\`bash
|
|
391
|
+
# List main directory structure
|
|
392
|
+
find [backend-dir] -type d -maxdepth 3 | head -50
|
|
393
|
+
\`\`\`
|
|
394
|
+
|
|
395
|
+
**Module Organization Patterns**:
|
|
396
|
+
- Module division style (by feature / by layer)
|
|
397
|
+
- File naming conventions
|
|
398
|
+
- Export patterns
|
|
399
|
+
|
|
400
|
+
**Type Definition Patterns**:
|
|
401
|
+
- Zod Schema organization
|
|
402
|
+
- Type export standards
|
|
403
|
+
- Input/Output type definitions
|
|
404
|
+
|
|
405
|
+
**Router/Endpoint Patterns**:
|
|
406
|
+
- Route organization
|
|
407
|
+
- Middleware usage
|
|
408
|
+
- Parameter validation approach
|
|
409
|
+
|
|
410
|
+
**Database Operation Patterns**:
|
|
411
|
+
- Query function organization
|
|
412
|
+
- Transaction handling
|
|
413
|
+
- Batch operation patterns
|
|
414
|
+
|
|
415
|
+
**Error Handling Patterns**:
|
|
416
|
+
- Error type definitions
|
|
417
|
+
- Exception catching approach
|
|
418
|
+
- Response format standards
|
|
419
|
+
|
|
420
|
+
**Logging Patterns**:
|
|
421
|
+
- Logging tool
|
|
422
|
+
- Log level usage
|
|
423
|
+
- Structured log format
|
|
424
|
+
|
|
425
|
+
### Step 4: Generate Documents
|
|
426
|
+
|
|
427
|
+
Generate two files in \`workflow/structure/backend/\` directory:
|
|
428
|
+
|
|
429
|
+
#### 4.1 Generate \`index.md\` (Index File)
|
|
430
|
+
|
|
431
|
+
\`\`\`markdown
|
|
432
|
+
# Backend Development Guidelines Index
|
|
433
|
+
|
|
434
|
+
> **Full Documentation**: See \`./doc.md\` for detailed guidelines
|
|
435
|
+
|
|
436
|
+
This index helps you quickly locate the sections and line numbers needed for backend tasks.
|
|
437
|
+
|
|
438
|
+
## Quick Navigation
|
|
439
|
+
|
|
440
|
+
| Section | Key Content | Line Range |
|
|
441
|
+
|---------|-------------|------------|
|
|
442
|
+
| š Directory Structure | Module directory template, examples | L5-XX |
|
|
443
|
+
| šÆ Type Safety Guidelines | TypeScript rules, Zod Schema | LXX-XX |
|
|
444
|
+
| šŖµ Logging Guidelines | Structured logging, no console | LXX-XX |
|
|
445
|
+
| šļø Database Operation Guidelines | Query directory, batch operations | LXX-XX |
|
|
446
|
+
| šØ Error Handling | Graceful degradation, response format | LXX-XX |
|
|
447
|
+
| šÆ Router Guidelines | Route definitions, middleware | LXX-XX |
|
|
448
|
+
| ā
Checklist | Pre-commit checks | LXX-XX |
|
|
449
|
+
|
|
450
|
+
## By Scenario
|
|
451
|
+
|
|
452
|
+
### Scenario 1: Create New API Module
|
|
453
|
+
- Required: š Directory Structure (LXX-XX)
|
|
454
|
+
- Also read: šÆ Type Safety Guidelines (LXX-XX)
|
|
455
|
+
|
|
456
|
+
### Scenario 2: Write Database Operations
|
|
457
|
+
- Required: šļø Database Operation Guidelines (LXX-XX)
|
|
458
|
+
- Reference: šØ Error Handling (LXX-XX)
|
|
459
|
+
|
|
460
|
+
### Scenario 3: Add New Endpoint
|
|
461
|
+
- Required: šÆ Router Guidelines (LXX-XX)
|
|
462
|
+
- Reference: šÆ Type Safety Guidelines (LXX-XX)
|
|
463
|
+
|
|
464
|
+
[... add more scenarios based on project needs ...]
|
|
465
|
+
|
|
466
|
+
## Core Rules Quick Reference
|
|
467
|
+
|
|
468
|
+
| Rule | Location |
|
|
469
|
+
|------|----------|
|
|
470
|
+
| **All inputs/outputs must have Zod Schema** | LXX-XX |
|
|
471
|
+
| **Response body must include success + reason** | LXX-XX |
|
|
472
|
+
| **Never await database in loops** | LXX-XX |
|
|
473
|
+
| [other core rules...] | LXX-XX |
|
|
474
|
+
|
|
475
|
+
## Reference Examples
|
|
476
|
+
|
|
477
|
+
| Feature | Reference File |
|
|
478
|
+
|---------|----------------|
|
|
479
|
+
| Complete module structure | \`[path]\` |
|
|
480
|
+
| Zod Schema definition | \`[path]\` |
|
|
481
|
+
| Database operations | \`[path]\` |
|
|
482
|
+
\`\`\`
|
|
483
|
+
|
|
484
|
+
#### 4.2 Generate \`doc.md\` (Detailed Guidelines)
|
|
485
|
+
|
|
486
|
+
\`\`\`markdown
|
|
487
|
+
# Backend Development Guidelines
|
|
488
|
+
|
|
489
|
+
These guidelines define the development standards and best practices for [Project Name] backend modules.
|
|
490
|
+
|
|
491
|
+
## š Directory Structure Guidelines
|
|
492
|
+
|
|
493
|
+
### Module Organization
|
|
494
|
+
[describe directory structure]
|
|
495
|
+
|
|
496
|
+
## šÆ Type Safety Guidelines
|
|
497
|
+
|
|
498
|
+
### 1. TypeScript Non-null Assertion Rules
|
|
499
|
+
|
|
500
|
+
**Never use non-null assertion operator (\`!\`), use local variable extraction instead**
|
|
501
|
+
|
|
502
|
+
#### ā Wrong Approach
|
|
503
|
+
|
|
504
|
+
\\\`\\\`\\\`typescript
|
|
505
|
+
if (user.profileId) {
|
|
506
|
+
await db.update(profiles)
|
|
507
|
+
.set({ name: newName })
|
|
508
|
+
.where(eq(profiles.id, user.profileId!)); // ā non-null assertion
|
|
509
|
+
}
|
|
510
|
+
\\\`\\\`\\\`
|
|
511
|
+
|
|
512
|
+
#### ā
Correct Approach
|
|
513
|
+
|
|
514
|
+
\\\`\\\`\\\`typescript
|
|
515
|
+
if (user.profileId) {
|
|
516
|
+
const profileId = user.profileId; // type narrowed to string
|
|
517
|
+
await db.update(profiles)
|
|
518
|
+
.set({ name: newName })
|
|
519
|
+
.where(eq(profiles.id, profileId)); // ā
type safe
|
|
520
|
+
}
|
|
521
|
+
\\\`\\\`\\\`
|
|
522
|
+
|
|
523
|
+
### 2. Zod Schema Definition
|
|
524
|
+
|
|
525
|
+
**All API endpoints must use Zod to define input/output schemas**
|
|
526
|
+
|
|
527
|
+
### 3. Response Format Standards
|
|
528
|
+
|
|
529
|
+
#### Single Operation Response
|
|
530
|
+
\\\`\\\`\\\`typescript
|
|
531
|
+
{
|
|
532
|
+
success: boolean, // operation result
|
|
533
|
+
reason?: string, // success message or failure reason
|
|
534
|
+
error?: string, // detailed error info
|
|
535
|
+
// ... other domain-specific fields
|
|
536
|
+
}
|
|
537
|
+
\\\`\\\`\\\`
|
|
538
|
+
|
|
539
|
+
#### Batch Operation Response
|
|
540
|
+
\\\`\\\`\\\`typescript
|
|
541
|
+
{
|
|
542
|
+
success: boolean, // overall result
|
|
543
|
+
total: number, // total processed
|
|
544
|
+
processed: number, // succeeded count
|
|
545
|
+
failed: number, // failed count
|
|
546
|
+
errors?: Array<{id: string, error: string}>
|
|
547
|
+
}
|
|
548
|
+
\\\`\\\`\\\`
|
|
549
|
+
|
|
550
|
+
## šŖµ Logging Guidelines
|
|
551
|
+
|
|
552
|
+
### Use Structured Logging
|
|
553
|
+
|
|
554
|
+
**Never use \`console.log\` or \`console.error\`**
|
|
555
|
+
|
|
556
|
+
#### ā
Correct Approach
|
|
557
|
+
[code example using logger]
|
|
558
|
+
|
|
559
|
+
#### ā Wrong Approach
|
|
560
|
+
[anti-pattern example]
|
|
561
|
+
|
|
562
|
+
## šļø Database Operation Guidelines
|
|
563
|
+
|
|
564
|
+
### šØ Never Execute Database Operations in Loops
|
|
565
|
+
|
|
566
|
+
#### ā Wrong Approach - N+1 Problem
|
|
567
|
+
[anti-pattern code example]
|
|
568
|
+
|
|
569
|
+
#### ā
Correct Approach - Batch Query
|
|
570
|
+
[correct pattern code example]
|
|
571
|
+
|
|
572
|
+
### Batch Insert
|
|
573
|
+
[code example]
|
|
574
|
+
|
|
575
|
+
### Conflict Handling
|
|
576
|
+
[code example with onConflictDoUpdate]
|
|
577
|
+
|
|
578
|
+
## šØ Error Handling
|
|
579
|
+
|
|
580
|
+
### Graceful Degradation
|
|
581
|
+
[code example]
|
|
582
|
+
|
|
583
|
+
### Promise.allSettled
|
|
584
|
+
[code example for batch operations]
|
|
585
|
+
|
|
586
|
+
## šÆ Router Guidelines
|
|
587
|
+
|
|
588
|
+
### Hono Router Example
|
|
589
|
+
[code example]
|
|
590
|
+
|
|
591
|
+
### oRPC Router Example
|
|
592
|
+
[code example]
|
|
593
|
+
|
|
594
|
+
## ā
Checklist
|
|
595
|
+
|
|
596
|
+
Before committing, confirm:
|
|
597
|
+
|
|
598
|
+
- [ ] All API inputs use Zod Schema validation
|
|
599
|
+
- [ ] All API outputs have clear type definitions
|
|
600
|
+
- [ ] Response format includes \`success\` and \`reason\` fields
|
|
601
|
+
- [ ] Database operations not executed in loops
|
|
602
|
+
- [ ] Batch operations use \`Promise.allSettled\`
|
|
603
|
+
- [ ] Use \`logger\` instead of \`console\`
|
|
604
|
+
- [ ] No non-null assertions \`!\`
|
|
605
|
+
- [ ] Error handling returns degraded result instead of throwing
|
|
606
|
+
- [ ] \`pnpm lint\` passes
|
|
607
|
+
- [ ] \`pnpm type-check\` passes
|
|
608
|
+
|
|
609
|
+
## š Reference Examples
|
|
610
|
+
|
|
611
|
+
| Feature | Reference File |
|
|
612
|
+
|---------|----------------|
|
|
613
|
+
| [Feature1] | \`[path]\` |
|
|
614
|
+
\`\`\`
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
## Output Requirements
|
|
619
|
+
|
|
620
|
+
1. **Create directory**: \`mkdir -p workflow/structure/backend\`
|
|
621
|
+
2. **Generate index.md**: Include navigation tables
|
|
622
|
+
3. **Generate doc.md**: Include complete detailed guidelines
|
|
623
|
+
4. **Update line numbers**: Ensure index.md line numbers match doc.md
|
|
624
|
+
5. **Use actual project code**: Examples should come from real project files
|
|
625
|
+
|
|
626
|
+
---
|
|
627
|
+
|
|
628
|
+
## Completion Confirmation
|
|
629
|
+
|
|
630
|
+
- [ ] \`index.md\` created with navigation table
|
|
631
|
+
- [ ] \`doc.md\` created with detailed guidelines
|
|
632
|
+
- [ ] Line numbers correctly annotated
|
|
633
|
+
- [ ] Example code from actual project files
|
|
634
|
+
- [ ] Covers all major patterns used in project
|
|
635
|
+
|
|
636
|
+
Report: "Backend structure guidelines generated, please check \`workflow/structure/backend/\` directory"
|
|
637
|
+
`;
|
|
638
|
+
}
|
|
97
639
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/configurators/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,UAAU,mBAAmB;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/configurators/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,UAAU,mBAAmB;IAClC,OAAO;QACN,YAAY,EAAE,oBAAoB,EAAE;QACpC,gBAAgB,EAAE,wBAAwB,EAAE;QAC5C,eAAe,EAAE,uBAAuB,EAAE;QAC1C,mBAAmB,EAAE,0BAA0B,EAAE;QACjD,mBAAmB,EAAE,2BAA2B,EAAE;QAClD,6BAA6B,EAAE,oCAAoC,EAAE;QACrE,4BAA4B,EAAE,mCAAmC,EAAE;KACnE,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC5B,OAAO;;;;;;;;;CASP,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB;IAChC,OAAO;;;;;;;;CAQP,CAAC;AACF,CAAC;AAED,SAAS,uBAAuB;IAC/B,OAAO;;;;;;;;CAQP,CAAC;AACF,CAAC;AAED,SAAS,0BAA0B;IAClC,OAAO;;;;;;;;;;;;;;;;;;;CAmBP,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBP,CAAC;AACF,CAAC;AAED,SAAS,oCAAoC;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgPP,CAAC;AACF,CAAC;AAED,SAAS,mCAAmC;IAC3C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsSP,CAAC;AACF,CAAC"}
|