@mind-fold/open-flow 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -4
- package/dist/configurators/templates.d.ts.map +1 -1
- package/dist/configurators/templates.js +222 -132
- package/dist/configurators/templates.js.map +1 -1
- package/dist/configurators/workflow.js +152 -69
- package/dist/configurators/workflow.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,10 +72,14 @@ your-project/
|
|
|
72
72
|
| Command | Purpose |
|
|
73
73
|
|---------|---------|
|
|
74
74
|
| `/init-agent` | Initialize AI session, read context and guidelines |
|
|
75
|
+
| `/before-frontend-dev` | Read frontend guidelines before starting development |
|
|
76
|
+
| `/before-backend-dev` | Read backend guidelines before starting development |
|
|
75
77
|
| `/check-frontend` | Check frontend code against guidelines |
|
|
76
78
|
| `/check-backend` | Check backend code against guidelines |
|
|
77
79
|
| `/record-agent-flow` | Record work progress (after human commits) |
|
|
78
80
|
| `/onboard-developer` | Guide new developer through setup |
|
|
81
|
+
| `/update-frontend-structure` | Update frontend guidelines if new patterns found |
|
|
82
|
+
| `/update-backend-structure` | Update backend guidelines if new patterns found |
|
|
79
83
|
|
|
80
84
|
## Workflow
|
|
81
85
|
|
|
@@ -103,16 +107,21 @@ Fill in your project-specific guidelines in:
|
|
|
103
107
|
- `workflow/structure/frontend/doc.md`
|
|
104
108
|
- `workflow/structure/backend/doc.md`
|
|
105
109
|
|
|
106
|
-
|
|
110
|
+
**Requirements**:
|
|
111
|
+
- Write all documentation in **English**
|
|
112
|
+
- Add section markers: `@@@section:kebab-case-id` and `@@@/section:kebab-case-id`
|
|
113
|
+
- Update `index.md` files with section IDs for quick navigation
|
|
107
114
|
|
|
108
115
|
## Key Concepts
|
|
109
116
|
|
|
110
117
|
### index.md + doc.md Structure
|
|
111
118
|
|
|
112
119
|
Instead of reading entire guideline documents (which can be 1000+ lines), AI:
|
|
113
|
-
1. Reads the lightweight `index.md` (navigation table)
|
|
114
|
-
2. Finds relevant section
|
|
115
|
-
3.
|
|
120
|
+
1. Reads the lightweight `index.md` (navigation table with section IDs)
|
|
121
|
+
2. Finds relevant section ID for the task
|
|
122
|
+
3. Extracts only the needed section: `sed -n '/@@@section:ID/,/@@@\/section:ID/p' doc.md`
|
|
123
|
+
|
|
124
|
+
Section markers (`@@@section:id`) ensure references don't break when content is added or removed.
|
|
116
125
|
|
|
117
126
|
This saves tokens and improves focus.
|
|
118
127
|
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CActD"}
|
|
@@ -11,6 +11,10 @@ export function getCommandTemplates() {
|
|
|
11
11
|
"onboard-developer": getOnboardDeveloperTemplate(),
|
|
12
12
|
"generate-frontend-structure": getGenerateFrontendStructureTemplate(),
|
|
13
13
|
"generate-backend-structure": getGenerateBackendStructureTemplate(),
|
|
14
|
+
"before-frontend-dev": getBeforeFrontendDevTemplate(),
|
|
15
|
+
"before-backend-dev": getBeforeBackendDevTemplate(),
|
|
16
|
+
"update-frontend-structure": getUpdateFrontendStructureTemplate(),
|
|
17
|
+
"update-backend-structure": getUpdateBackendStructureTemplate(),
|
|
14
18
|
};
|
|
15
19
|
}
|
|
16
20
|
function getInitAgentTemplate() {
|
|
@@ -30,8 +34,8 @@ function getCheckFrontendTemplate() {
|
|
|
30
34
|
|
|
31
35
|
Execute these steps:
|
|
32
36
|
1. Run \`git status\` to see modified files
|
|
33
|
-
2. Read \`workflow/structure/frontend/index.md\` to find relevant
|
|
34
|
-
3.
|
|
37
|
+
2. Read \`workflow/structure/frontend/index.md\` to find relevant section IDs
|
|
38
|
+
3. Extract specific sections: \`sed -n '/@@@section:ID/,/@@@\\/section:ID/p' workflow/structure/frontend/doc.md\`
|
|
35
39
|
4. Review your code against the guidelines
|
|
36
40
|
5. Report any violations and fix them if found
|
|
37
41
|
`;
|
|
@@ -41,8 +45,8 @@ function getCheckBackendTemplate() {
|
|
|
41
45
|
|
|
42
46
|
Execute these steps:
|
|
43
47
|
1. Run \`git status\` to see modified files
|
|
44
|
-
2. Read \`workflow/structure/backend/index.md\` to find relevant
|
|
45
|
-
3.
|
|
48
|
+
2. Read \`workflow/structure/backend/index.md\` to find relevant section IDs
|
|
49
|
+
3. Extract specific sections: \`sed -n '/@@@section:ID/,/@@@\\/section:ID/p' workflow/structure/backend/doc.md\`
|
|
46
50
|
4. Review your code against the guidelines
|
|
47
51
|
5. Report any violations and fix them if found
|
|
48
52
|
`;
|
|
@@ -101,18 +105,15 @@ function getGenerateFrontendStructureTemplate() {
|
|
|
101
105
|
|
|
102
106
|
## Task Description
|
|
103
107
|
|
|
104
|
-
Scan the project's frontend code, analyze existing code patterns and tech stack, then auto-generate \`doc.md\` (detailed guidelines)
|
|
108
|
+
Scan the project's frontend code, analyze existing code patterns and tech stack, then auto-generate \`doc.md\` (detailed guidelines) with section markers, then generate \`index.md\` (navigation index) using section IDs.
|
|
105
109
|
|
|
106
110
|
---
|
|
107
111
|
|
|
108
|
-
## ⚠️ CRITICAL:
|
|
112
|
+
## ⚠️ CRITICAL: Requirements
|
|
109
113
|
|
|
110
|
-
**
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
3. **Finally**: Generate \`index.md\` using the line numbers from step 2
|
|
114
|
-
|
|
115
|
-
**DO NOT** generate index.md with placeholder line numbers. Always use the extract script first.
|
|
114
|
+
1. **Language**: All documentation must be written in **English**
|
|
115
|
+
2. **Section Markers**: Use \`@@@section:kebab-case-id\` and \`@@@/section:kebab-case-id\` to mark sections
|
|
116
|
+
3. **Index**: Reference sections by ID, not line numbers
|
|
116
117
|
|
|
117
118
|
---
|
|
118
119
|
|
|
@@ -184,9 +185,7 @@ find [frontend-dir] -type d -maxdepth 3 | head -50
|
|
|
184
185
|
- Local state
|
|
185
186
|
- URL state synchronization
|
|
186
187
|
|
|
187
|
-
### Step 4: Generate \`doc.md\`
|
|
188
|
-
|
|
189
|
-
⚠️ **Generate doc.md BEFORE index.md**
|
|
188
|
+
### Step 4: Generate \`doc.md\` with Section Markers
|
|
190
189
|
|
|
191
190
|
Create directory and generate detailed guidelines:
|
|
192
191
|
|
|
@@ -201,16 +200,24 @@ mkdir -p workflow/structure/frontend
|
|
|
201
200
|
|
|
202
201
|
These guidelines define the development standards and best practices for [Project Name] frontend modules.
|
|
203
202
|
|
|
203
|
+
@@@section:directory-structure
|
|
204
204
|
## 📁 Directory Structure Guidelines
|
|
205
205
|
|
|
206
|
+
@@@section:module-organization
|
|
206
207
|
### Module Organization
|
|
207
208
|
[Describe directory structure with tree diagram code block]
|
|
208
209
|
|
|
209
210
|
**Reference Example**:
|
|
210
211
|
- \`[path]\` - [description]
|
|
211
212
|
|
|
213
|
+
@@@/section:module-organization
|
|
214
|
+
|
|
215
|
+
@@@/section:directory-structure
|
|
216
|
+
|
|
217
|
+
@@@section:type-safety
|
|
212
218
|
## 🎯 Type Safety Guidelines
|
|
213
219
|
|
|
220
|
+
@@@section:backend-contract-types
|
|
214
221
|
### 1. Backend Contract Types vs Frontend View Models
|
|
215
222
|
|
|
216
223
|
#### ✅ Correct Approach - Import Types from Backend
|
|
@@ -219,23 +226,40 @@ These guidelines define the development standards and best practices for [Projec
|
|
|
219
226
|
#### ❌ Wrong Approach
|
|
220
227
|
[anti-pattern code example]
|
|
221
228
|
|
|
229
|
+
@@@/section:backend-contract-types
|
|
230
|
+
|
|
231
|
+
@@@/section:type-safety
|
|
232
|
+
|
|
233
|
+
@@@section:hook-development
|
|
222
234
|
## 🪝 Hook Development Guidelines
|
|
223
235
|
|
|
236
|
+
@@@section:query-hook-guidelines
|
|
224
237
|
### 1. Query Hook Standards
|
|
225
238
|
|
|
226
239
|
#### ✅ Correct Query Hook Pattern
|
|
227
240
|
[code example]
|
|
228
241
|
|
|
242
|
+
@@@/section:query-hook-guidelines
|
|
243
|
+
|
|
244
|
+
@@@section:mutation-hook-guidelines
|
|
229
245
|
### 2. Mutation Hook Standards
|
|
230
246
|
|
|
231
247
|
#### ✅ Correct Mutation Hook Pattern
|
|
232
248
|
[code example]
|
|
233
249
|
|
|
250
|
+
@@@/section:mutation-hook-guidelines
|
|
251
|
+
|
|
252
|
+
@@@/section:hook-development
|
|
253
|
+
|
|
254
|
+
@@@section:api-calls
|
|
234
255
|
## 🔌 API Call Guidelines
|
|
235
256
|
|
|
236
257
|
### Basic Usage
|
|
237
258
|
[code example]
|
|
238
259
|
|
|
260
|
+
@@@/section:api-calls
|
|
261
|
+
|
|
262
|
+
@@@section:state-management
|
|
239
263
|
## 🏗️ State Management Guidelines
|
|
240
264
|
|
|
241
265
|
### 1. URL State Management
|
|
@@ -244,6 +268,9 @@ These guidelines define the development standards and best practices for [Projec
|
|
|
244
268
|
### 2. React Context Standards
|
|
245
269
|
[code example]
|
|
246
270
|
|
|
271
|
+
@@@/section:state-management
|
|
272
|
+
|
|
273
|
+
@@@section:component-development
|
|
247
274
|
## 🎨 Component Development Guidelines
|
|
248
275
|
|
|
249
276
|
### 1. Component Structure
|
|
@@ -252,51 +279,43 @@ These guidelines define the development standards and best practices for [Projec
|
|
|
252
279
|
### 2. Styling Standards
|
|
253
280
|
[code example]
|
|
254
281
|
|
|
282
|
+
@@@/section:component-development
|
|
283
|
+
|
|
284
|
+
@@@section:performance-optimization
|
|
255
285
|
## ⚡ Performance Optimization Guidelines
|
|
256
286
|
|
|
257
287
|
[performance rules]
|
|
258
288
|
|
|
289
|
+
@@@/section:performance-optimization
|
|
290
|
+
|
|
291
|
+
@@@section:code-quality
|
|
259
292
|
## 🔍 Code Quality Guidelines
|
|
260
293
|
|
|
261
294
|
### Lint and Formatting
|
|
262
295
|
[tool configuration and usage]
|
|
263
296
|
|
|
297
|
+
@@@/section:code-quality
|
|
298
|
+
|
|
299
|
+
@@@section:checklist
|
|
264
300
|
## ✅ Checklist
|
|
265
301
|
|
|
266
302
|
- [ ] Code passes lint check
|
|
267
303
|
- [ ] Type check passes
|
|
268
304
|
- [ ] [other check items...]
|
|
269
305
|
|
|
306
|
+
@@@/section:checklist
|
|
307
|
+
|
|
308
|
+
@@@section:reference-examples
|
|
270
309
|
## 📚 Reference Examples
|
|
271
310
|
|
|
272
311
|
| Feature | Reference File |
|
|
273
312
|
|---------|----------------|
|
|
274
313
|
| [Feature1] | \`[path]\` |
|
|
275
|
-
\`\`\`
|
|
276
314
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
⚠️ **REQUIRED: Run this AFTER generating doc.md**
|
|
280
|
-
|
|
281
|
-
\`\`\`bash
|
|
282
|
-
# Get all headings with line number ranges
|
|
283
|
-
./workflow/scripts/extract-md-headings.sh workflow/structure/frontend/doc.md -l 1,2,3 -r
|
|
284
|
-
|
|
285
|
-
# Example output:
|
|
286
|
-
# Level Line Range Title
|
|
287
|
-
# ---- ---- ---- ----
|
|
288
|
-
# 1 1 L1-15 Frontend Development Guidelines
|
|
289
|
-
# 2 5 L5-28 📁 Directory Structure Guidelines
|
|
290
|
-
# 2 30 L30-65 🎯 Type Safety Guidelines
|
|
291
|
-
# 2 67 L67-120 🪝 Hook Development Guidelines
|
|
292
|
-
# ...
|
|
315
|
+
@@@/section:reference-examples
|
|
293
316
|
\`\`\`
|
|
294
317
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
### Step 6: Generate \`index.md\` with Accurate Line Numbers
|
|
298
|
-
|
|
299
|
-
⚠️ **Use the EXACT line numbers from Step 5**
|
|
318
|
+
### Step 5: Generate \`index.md\` with Section IDs
|
|
300
319
|
|
|
301
320
|
\`\`\`markdown
|
|
302
321
|
# Frontend Development Guidelines Index
|
|
@@ -307,40 +326,46 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
307
326
|
|
|
308
327
|
## Quick Navigation
|
|
309
328
|
|
|
310
|
-
| Development Task | Section to Read |
|
|
329
|
+
| Development Task | Section to Read | Section ID |
|
|
311
330
|
|-----------------|-----------------|------------|
|
|
312
|
-
| **New feature module** | Directory Structure |
|
|
313
|
-
| **Write Query Hook** | Hook Guidelines > Query Hook |
|
|
314
|
-
| **Write Mutation Hook** | Hook Guidelines > Mutation Hook |
|
|
315
|
-
| **API calls** | API Call Guidelines |
|
|
316
|
-
| **State management** | State Management Guidelines |
|
|
317
|
-
| **Write component** | Component Guidelines |
|
|
318
|
-
| **Performance optimization** | Performance Guidelines |
|
|
319
|
-
| **Code quality check** | Code Quality Guidelines |
|
|
331
|
+
| **New feature module** | Directory Structure | \`directory-structure\` |
|
|
332
|
+
| **Write Query Hook** | Hook Guidelines > Query Hook | \`query-hook-guidelines\` |
|
|
333
|
+
| **Write Mutation Hook** | Hook Guidelines > Mutation Hook | \`mutation-hook-guidelines\` |
|
|
334
|
+
| **API calls** | API Call Guidelines | \`api-calls\` |
|
|
335
|
+
| **State management** | State Management Guidelines | \`state-management\` |
|
|
336
|
+
| **Write component** | Component Guidelines | \`component-development\` |
|
|
337
|
+
| **Performance optimization** | Performance Guidelines | \`performance-optimization\` |
|
|
338
|
+
| **Code quality check** | Code Quality Guidelines | \`code-quality\` |
|
|
339
|
+
|
|
340
|
+
## How to Read Sections
|
|
341
|
+
|
|
342
|
+
\\\`\\\`\\\`bash
|
|
343
|
+
# Extract a specific section by ID
|
|
344
|
+
sed -n '/@@@section:query-hook-guidelines/,/@@@\\\\/section:query-hook-guidelines/p' doc.md
|
|
345
|
+
\\\`\\\`\\\`
|
|
320
346
|
|
|
321
347
|
## By Development Scenario
|
|
322
348
|
|
|
323
349
|
### Scenario 1: Create a new Query Hook
|
|
324
350
|
|
|
325
351
|
**Required Reading**:
|
|
326
|
-
- Type Safety > Backend Contract Types (
|
|
327
|
-
- Hook Guidelines > Query Hook (
|
|
352
|
+
- Type Safety > Backend Contract Types (\`backend-contract-types\`)
|
|
353
|
+
- Hook Guidelines > Query Hook (\`query-hook-guidelines\`)
|
|
328
354
|
|
|
329
355
|
### Scenario 2: Create a new UI Component
|
|
330
356
|
|
|
331
357
|
**Required Reading**:
|
|
332
|
-
- Component Guidelines
|
|
333
|
-
- Component Guidelines > Styling Standards (L202-220)
|
|
358
|
+
- Component Guidelines (\`component-development\`)
|
|
334
359
|
|
|
335
360
|
[... add more scenarios based on project needs ...]
|
|
336
361
|
|
|
337
362
|
## Core Rules Quick Reference
|
|
338
363
|
|
|
339
|
-
| Rule |
|
|
340
|
-
|
|
341
|
-
| Import types from backend, don't redefine |
|
|
342
|
-
|
|
|
343
|
-
| [other core rules...] |
|
|
364
|
+
| Rule | Section ID |
|
|
365
|
+
|------|------------|
|
|
366
|
+
| Import types from backend, don't redefine | \`backend-contract-types\` |
|
|
367
|
+
| Query Hook patterns | \`query-hook-guidelines\` |
|
|
368
|
+
| [other core rules...] | \`section-id\` |
|
|
344
369
|
|
|
345
370
|
## Reference Example Files
|
|
346
371
|
|
|
@@ -356,19 +381,18 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
356
381
|
## Output Requirements
|
|
357
382
|
|
|
358
383
|
1. **Create directory**: \`mkdir -p workflow/structure/frontend\`
|
|
359
|
-
2. **
|
|
360
|
-
3. **
|
|
361
|
-
4. **Generate index.md
|
|
384
|
+
2. **Write in English**: All documentation must be in English
|
|
385
|
+
3. **Add section markers**: Use \`@@@section:id\` and \`@@@/section:id\` format
|
|
386
|
+
4. **Generate index.md**: Reference sections by ID, not line numbers
|
|
362
387
|
5. **Use actual project code**: Examples should come from real project files
|
|
363
388
|
|
|
364
389
|
---
|
|
365
390
|
|
|
366
391
|
## Completion Confirmation
|
|
367
392
|
|
|
368
|
-
- [ ] \`doc.md\` created with detailed guidelines
|
|
369
|
-
- [ ]
|
|
370
|
-
- [ ] \`index.md\` created with
|
|
371
|
-
- [ ] Line numbers verified to match actual doc.md content
|
|
393
|
+
- [ ] \`doc.md\` created with detailed guidelines in **English**
|
|
394
|
+
- [ ] Section markers added to all major sections
|
|
395
|
+
- [ ] \`index.md\` created with section IDs
|
|
372
396
|
- [ ] Example code from actual project files
|
|
373
397
|
- [ ] Covers all major patterns used in project
|
|
374
398
|
|
|
@@ -380,18 +404,15 @@ function getGenerateBackendStructureTemplate() {
|
|
|
380
404
|
|
|
381
405
|
## Task Description
|
|
382
406
|
|
|
383
|
-
Scan the project's backend code, analyze existing code patterns and tech stack, then auto-generate \`doc.md\` (detailed guidelines)
|
|
407
|
+
Scan the project's backend code, analyze existing code patterns and tech stack, then auto-generate \`doc.md\` (detailed guidelines) with section markers, then generate \`index.md\` (navigation index) using section IDs.
|
|
384
408
|
|
|
385
409
|
---
|
|
386
410
|
|
|
387
|
-
## ⚠️ CRITICAL:
|
|
411
|
+
## ⚠️ CRITICAL: Requirements
|
|
388
412
|
|
|
389
|
-
**
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
3. **Finally**: Generate \`index.md\` using the line numbers from step 2
|
|
393
|
-
|
|
394
|
-
**DO NOT** generate index.md with placeholder line numbers. Always use the extract script first.
|
|
413
|
+
1. **Language**: All documentation must be written in **English**
|
|
414
|
+
2. **Section Markers**: Use \`@@@section:kebab-case-id\` and \`@@@/section:kebab-case-id\` to mark sections
|
|
415
|
+
3. **Index**: Reference sections by ID, not line numbers
|
|
395
416
|
|
|
396
417
|
---
|
|
397
418
|
|
|
@@ -469,9 +490,7 @@ find [backend-dir] -type d -maxdepth 3 | head -50
|
|
|
469
490
|
- Log level usage
|
|
470
491
|
- Structured log format
|
|
471
492
|
|
|
472
|
-
### Step 4: Generate \`doc.md\`
|
|
473
|
-
|
|
474
|
-
⚠️ **Generate doc.md BEFORE index.md**
|
|
493
|
+
### Step 4: Generate \`doc.md\` with Section Markers
|
|
475
494
|
|
|
476
495
|
Create directory and generate detailed guidelines:
|
|
477
496
|
|
|
@@ -486,13 +505,18 @@ mkdir -p workflow/structure/backend
|
|
|
486
505
|
|
|
487
506
|
These guidelines define the development standards and best practices for [Project Name] backend modules.
|
|
488
507
|
|
|
508
|
+
@@@section:directory-structure
|
|
489
509
|
## 📁 Directory Structure Guidelines
|
|
490
510
|
|
|
491
511
|
### Module Organization
|
|
492
512
|
[describe directory structure]
|
|
493
513
|
|
|
514
|
+
@@@/section:directory-structure
|
|
515
|
+
|
|
516
|
+
@@@section:type-safety
|
|
494
517
|
## 🎯 Type Safety Guidelines
|
|
495
518
|
|
|
519
|
+
@@@section:non-null-assertion
|
|
496
520
|
### 1. TypeScript Non-null Assertion Rules
|
|
497
521
|
|
|
498
522
|
**Never use non-null assertion operator (\`!\`), use local variable extraction instead**
|
|
@@ -518,10 +542,16 @@ if (user.profileId) {
|
|
|
518
542
|
}
|
|
519
543
|
\\\`\\\`\\\`
|
|
520
544
|
|
|
545
|
+
@@@/section:non-null-assertion
|
|
546
|
+
|
|
547
|
+
@@@section:zod-schema
|
|
521
548
|
### 2. Zod Schema Definition
|
|
522
549
|
|
|
523
550
|
**All API endpoints must use Zod to define input/output schemas**
|
|
524
551
|
|
|
552
|
+
@@@/section:zod-schema
|
|
553
|
+
|
|
554
|
+
@@@section:response-format
|
|
525
555
|
### 3. Response Format Standards
|
|
526
556
|
|
|
527
557
|
#### Single Operation Response
|
|
@@ -530,7 +560,6 @@ if (user.profileId) {
|
|
|
530
560
|
success: boolean, // operation result
|
|
531
561
|
reason?: string, // success message or failure reason
|
|
532
562
|
error?: string, // detailed error info
|
|
533
|
-
// ... other domain-specific fields
|
|
534
563
|
}
|
|
535
564
|
\\\`\\\`\\\`
|
|
536
565
|
|
|
@@ -545,27 +574,30 @@ if (user.profileId) {
|
|
|
545
574
|
}
|
|
546
575
|
\\\`\\\`\\\`
|
|
547
576
|
|
|
577
|
+
@@@/section:response-format
|
|
578
|
+
|
|
579
|
+
@@@/section:type-safety
|
|
580
|
+
|
|
581
|
+
@@@section:logging
|
|
548
582
|
## 🪵 Logging Guidelines
|
|
549
583
|
|
|
550
584
|
### Use Structured Logging
|
|
551
585
|
|
|
552
586
|
**Never use \`console.log\` or \`console.error\`**
|
|
553
587
|
|
|
554
|
-
|
|
555
|
-
[code example using logger]
|
|
588
|
+
[code examples]
|
|
556
589
|
|
|
557
|
-
|
|
558
|
-
[anti-pattern example]
|
|
590
|
+
@@@/section:logging
|
|
559
591
|
|
|
592
|
+
@@@section:database-operations
|
|
560
593
|
## 🗄️ Database Operation Guidelines
|
|
561
594
|
|
|
595
|
+
@@@section:no-loops
|
|
562
596
|
### 🚨 Never Execute Database Operations in Loops
|
|
563
597
|
|
|
564
|
-
|
|
565
|
-
[anti-pattern code example]
|
|
598
|
+
[anti-pattern and correct pattern examples]
|
|
566
599
|
|
|
567
|
-
|
|
568
|
-
[correct pattern code example]
|
|
600
|
+
@@@/section:no-loops
|
|
569
601
|
|
|
570
602
|
### Batch Insert
|
|
571
603
|
[code example]
|
|
@@ -573,6 +605,9 @@ if (user.profileId) {
|
|
|
573
605
|
### Conflict Handling
|
|
574
606
|
[code example with onConflictDoUpdate]
|
|
575
607
|
|
|
608
|
+
@@@/section:database-operations
|
|
609
|
+
|
|
610
|
+
@@@section:error-handling
|
|
576
611
|
## 🎨 Error Handling
|
|
577
612
|
|
|
578
613
|
### Graceful Degradation
|
|
@@ -581,6 +616,9 @@ if (user.profileId) {
|
|
|
581
616
|
### Promise.allSettled
|
|
582
617
|
[code example for batch operations]
|
|
583
618
|
|
|
619
|
+
@@@/section:error-handling
|
|
620
|
+
|
|
621
|
+
@@@section:router-guidelines
|
|
584
622
|
## 🎯 Router Guidelines
|
|
585
623
|
|
|
586
624
|
### Hono Router Example
|
|
@@ -589,6 +627,9 @@ if (user.profileId) {
|
|
|
589
627
|
### oRPC Router Example
|
|
590
628
|
[code example]
|
|
591
629
|
|
|
630
|
+
@@@/section:router-guidelines
|
|
631
|
+
|
|
632
|
+
@@@section:checklist
|
|
592
633
|
## ✅ Checklist
|
|
593
634
|
|
|
594
635
|
Before committing, confirm:
|
|
@@ -604,80 +645,70 @@ Before committing, confirm:
|
|
|
604
645
|
- [ ] \`pnpm lint\` passes
|
|
605
646
|
- [ ] \`pnpm type-check\` passes
|
|
606
647
|
|
|
648
|
+
@@@/section:checklist
|
|
649
|
+
|
|
650
|
+
@@@section:reference-examples
|
|
607
651
|
## 📚 Reference Examples
|
|
608
652
|
|
|
609
653
|
| Feature | Reference File |
|
|
610
654
|
|---------|----------------|
|
|
611
655
|
| [Feature1] | \`[path]\` |
|
|
612
|
-
\`\`\`
|
|
613
|
-
|
|
614
|
-
### Step 5: Extract Line Numbers with Script
|
|
615
|
-
|
|
616
|
-
⚠️ **REQUIRED: Run this AFTER generating doc.md**
|
|
617
656
|
|
|
618
|
-
|
|
619
|
-
# Get all headings with line number ranges
|
|
620
|
-
./workflow/scripts/extract-md-headings.sh workflow/structure/backend/doc.md -l 1,2,3 -r
|
|
621
|
-
|
|
622
|
-
# Example output:
|
|
623
|
-
# Level Line Range Title
|
|
624
|
-
# ---- ---- ---- ----
|
|
625
|
-
# 1 1 L1-15 Backend Development Guidelines
|
|
626
|
-
# 2 5 L5-28 📁 Directory Structure Guidelines
|
|
627
|
-
# 2 30 L30-85 🎯 Type Safety Guidelines
|
|
628
|
-
# 2 87 L87-120 🪵 Logging Guidelines
|
|
629
|
-
# ...
|
|
657
|
+
@@@/section:reference-examples
|
|
630
658
|
\`\`\`
|
|
631
659
|
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
### Step 6: Generate \`index.md\` with Accurate Line Numbers
|
|
635
|
-
|
|
636
|
-
⚠️ **Use the EXACT line numbers from Step 5**
|
|
660
|
+
### Step 5: Generate \`index.md\` with Section IDs
|
|
637
661
|
|
|
638
662
|
\`\`\`markdown
|
|
639
663
|
# Backend Development Guidelines Index
|
|
640
664
|
|
|
641
665
|
> **Full Documentation**: See \`./doc.md\` for detailed guidelines
|
|
642
666
|
|
|
643
|
-
This index helps you quickly locate the sections
|
|
667
|
+
This index helps you quickly locate the sections needed for backend tasks.
|
|
644
668
|
|
|
645
669
|
## Quick Navigation
|
|
646
670
|
|
|
647
|
-
| Section | Key Content |
|
|
671
|
+
| Section | Key Content | Section ID |
|
|
648
672
|
|---------|-------------|------------|
|
|
649
|
-
| 📁 Directory Structure | Module directory template, examples |
|
|
650
|
-
| 🎯 Type Safety Guidelines | TypeScript rules, Zod Schema |
|
|
651
|
-
| 🪵 Logging Guidelines | Structured logging, no console |
|
|
652
|
-
| 🗄️ Database
|
|
653
|
-
| 🎨 Error Handling | Graceful degradation, response format |
|
|
654
|
-
| 🎯 Router Guidelines | Route definitions, middleware |
|
|
655
|
-
| ✅ Checklist | Pre-commit checks |
|
|
673
|
+
| 📁 Directory Structure | Module directory template, examples | \`directory-structure\` |
|
|
674
|
+
| 🎯 Type Safety Guidelines | TypeScript rules, Zod Schema | \`type-safety\` |
|
|
675
|
+
| 🪵 Logging Guidelines | Structured logging, no console | \`logging\` |
|
|
676
|
+
| 🗄️ Database Operations | Query directory, batch operations | \`database-operations\` |
|
|
677
|
+
| 🎨 Error Handling | Graceful degradation, response format | \`error-handling\` |
|
|
678
|
+
| 🎯 Router Guidelines | Route definitions, middleware | \`router-guidelines\` |
|
|
679
|
+
| ✅ Checklist | Pre-commit checks | \`checklist\` |
|
|
680
|
+
|
|
681
|
+
## How to Read Sections
|
|
682
|
+
|
|
683
|
+
\\\`\\\`\\\`bash
|
|
684
|
+
# Extract a specific section by ID
|
|
685
|
+
sed -n '/@@@section:database-operations/,/@@@\\\\/section:database-operations/p' doc.md
|
|
686
|
+
\\\`\\\`\\\`
|
|
656
687
|
|
|
657
688
|
## By Scenario
|
|
658
689
|
|
|
659
690
|
### Scenario 1: Create New API Module
|
|
660
|
-
- Required: 📁 Directory Structure (
|
|
661
|
-
- Also read: 🎯 Type Safety Guidelines (
|
|
691
|
+
- Required: 📁 Directory Structure (\`directory-structure\`)
|
|
692
|
+
- Also read: 🎯 Type Safety Guidelines (\`type-safety\`)
|
|
662
693
|
|
|
663
694
|
### Scenario 2: Write Database Operations
|
|
664
|
-
- Required: 🗄️ Database
|
|
665
|
-
- Reference: 🎨 Error Handling (
|
|
695
|
+
- Required: 🗄️ Database Operations (\`database-operations\`)
|
|
696
|
+
- Reference: 🎨 Error Handling (\`error-handling\`)
|
|
666
697
|
|
|
667
698
|
### Scenario 3: Add New Endpoint
|
|
668
|
-
- Required: 🎯 Router Guidelines (
|
|
669
|
-
- Reference: 🎯 Type Safety Guidelines (
|
|
699
|
+
- Required: 🎯 Router Guidelines (\`router-guidelines\`)
|
|
700
|
+
- Reference: 🎯 Type Safety Guidelines (\`type-safety\`)
|
|
670
701
|
|
|
671
702
|
[... add more scenarios based on project needs ...]
|
|
672
703
|
|
|
673
704
|
## Core Rules Quick Reference
|
|
674
705
|
|
|
675
|
-
| Rule |
|
|
676
|
-
|
|
677
|
-
| **All inputs/outputs must have Zod Schema** |
|
|
678
|
-
| **Response body must include success + reason** |
|
|
679
|
-
| **Never await database in loops** |
|
|
680
|
-
|
|
|
706
|
+
| Rule | Section ID |
|
|
707
|
+
|------|------------|
|
|
708
|
+
| **All inputs/outputs must have Zod Schema** | \`zod-schema\` |
|
|
709
|
+
| **Response body must include success + reason** | \`response-format\` |
|
|
710
|
+
| **Never await database in loops** | \`no-loops\` |
|
|
711
|
+
| **No non-null assertions** | \`non-null-assertion\` |
|
|
681
712
|
|
|
682
713
|
## Reference Examples
|
|
683
714
|
|
|
@@ -693,23 +724,82 @@ This index helps you quickly locate the sections and line numbers needed for bac
|
|
|
693
724
|
## Output Requirements
|
|
694
725
|
|
|
695
726
|
1. **Create directory**: \`mkdir -p workflow/structure/backend\`
|
|
696
|
-
2. **
|
|
697
|
-
3. **
|
|
698
|
-
4. **Generate index.md
|
|
727
|
+
2. **Write in English**: All documentation must be in English
|
|
728
|
+
3. **Add section markers**: Use \`@@@section:id\` and \`@@@/section:id\` format
|
|
729
|
+
4. **Generate index.md**: Reference sections by ID, not line numbers
|
|
699
730
|
5. **Use actual project code**: Examples should come from real project files
|
|
700
731
|
|
|
701
732
|
---
|
|
702
733
|
|
|
703
734
|
## Completion Confirmation
|
|
704
735
|
|
|
705
|
-
- [ ] \`doc.md\` created with detailed guidelines
|
|
706
|
-
- [ ]
|
|
707
|
-
- [ ] \`index.md\` created with
|
|
708
|
-
- [ ] Line numbers verified to match actual doc.md content
|
|
736
|
+
- [ ] \`doc.md\` created with detailed guidelines in **English**
|
|
737
|
+
- [ ] Section markers added to all major sections
|
|
738
|
+
- [ ] \`index.md\` created with section IDs
|
|
709
739
|
- [ ] Example code from actual project files
|
|
710
740
|
- [ ] Covers all major patterns used in project
|
|
711
741
|
|
|
712
742
|
Report: "Backend structure guidelines generated, please check \`workflow/structure/backend/\` directory"
|
|
713
743
|
`;
|
|
714
744
|
}
|
|
745
|
+
function getBeforeFrontendDevTemplate() {
|
|
746
|
+
return `Read the frontend development guidelines before starting your development task.
|
|
747
|
+
|
|
748
|
+
Execute these steps:
|
|
749
|
+
1. Read \`workflow/structure/frontend/index.md\` to find relevant section IDs for your task
|
|
750
|
+
2. Extract specific sections: \`sed -n '/@@@section:ID/,/@@@\\/section:ID/p' workflow/structure/frontend/doc.md\`
|
|
751
|
+
3. Understand the coding standards and patterns you need to follow
|
|
752
|
+
4. Then proceed with your development plan
|
|
753
|
+
|
|
754
|
+
This step is **mandatory** before writing any frontend code.
|
|
755
|
+
`;
|
|
756
|
+
}
|
|
757
|
+
function getBeforeBackendDevTemplate() {
|
|
758
|
+
return `Read the backend development guidelines before starting your development task.
|
|
759
|
+
|
|
760
|
+
Execute these steps:
|
|
761
|
+
1. Read \`workflow/structure/backend/index.md\` to find relevant section IDs for your task
|
|
762
|
+
2. Extract specific sections: \`sed -n '/@@@section:ID/,/@@@\\/section:ID/p' workflow/structure/backend/doc.md\`
|
|
763
|
+
3. Understand the coding standards and patterns you need to follow
|
|
764
|
+
4. Then proceed with your development plan
|
|
765
|
+
|
|
766
|
+
This step is **mandatory** before writing any backend code.
|
|
767
|
+
`;
|
|
768
|
+
}
|
|
769
|
+
function getUpdateFrontendStructureTemplate() {
|
|
770
|
+
return `Check if the frontend development guidelines need to be updated based on recent code changes.
|
|
771
|
+
|
|
772
|
+
Execute these steps:
|
|
773
|
+
1. Review recent commits: \`git log --oneline -10\`
|
|
774
|
+
2. Check if any new patterns or conventions were introduced
|
|
775
|
+
3. Read current guidelines: \`workflow/structure/frontend/doc.md\`
|
|
776
|
+
4. If updates are needed:
|
|
777
|
+
- Update \`doc.md\` with new patterns or rules (in **English**)
|
|
778
|
+
- Add section markers: \`@@@section:kebab-case-id\` and \`@@@/section:kebab-case-id\`
|
|
779
|
+
- Update \`index.md\` with new section IDs
|
|
780
|
+
5. Report what was updated (if anything)
|
|
781
|
+
|
|
782
|
+
**Language requirement**: All documentation must be written in **English**.
|
|
783
|
+
|
|
784
|
+
Only update if there are genuine new patterns worth documenting.
|
|
785
|
+
`;
|
|
786
|
+
}
|
|
787
|
+
function getUpdateBackendStructureTemplate() {
|
|
788
|
+
return `Check if the backend development guidelines need to be updated based on recent code changes.
|
|
789
|
+
|
|
790
|
+
Execute these steps:
|
|
791
|
+
1. Review recent commits: \`git log --oneline -10\`
|
|
792
|
+
2. Check if any new patterns or conventions were introduced
|
|
793
|
+
3. Read current guidelines: \`workflow/structure/backend/doc.md\`
|
|
794
|
+
4. If updates are needed:
|
|
795
|
+
- Update \`doc.md\` with new patterns or rules (in **English**)
|
|
796
|
+
- Add section markers: \`@@@section:kebab-case-id\` and \`@@@/section:kebab-case-id\`
|
|
797
|
+
- Update \`index.md\` with new section IDs
|
|
798
|
+
5. Report what was updated (if anything)
|
|
799
|
+
|
|
800
|
+
**Language requirement**: All documentation must be written in **English**.
|
|
801
|
+
|
|
802
|
+
Only update if there are genuine new patterns worth documenting.
|
|
803
|
+
`;
|
|
804
|
+
}
|
|
715
805
|
//# 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;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;
|
|
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;QACnE,qBAAqB,EAAE,4BAA4B,EAAE;QACrD,oBAAoB,EAAE,2BAA2B,EAAE;QACnD,2BAA2B,EAAE,kCAAkC,EAAE;QACjE,0BAA0B,EAAE,iCAAiC,EAAE;KAC/D,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwSP,CAAC;AACF,CAAC;AAED,SAAS,mCAAmC;IAC3C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoVP,CAAC;AACF,CAAC;AAED,SAAS,4BAA4B;IACpC,OAAO;;;;;;;;;CASP,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B;IACnC,OAAO;;;;;;;;;CASP,CAAC;AACF,CAAC;AAED,SAAS,kCAAkC;IAC1C,OAAO;;;;;;;;;;;;;;;CAeP,CAAC;AACF,CAAC;AAED,SAAS,iCAAiC;IACzC,OAAO;;;;;;;;;;;;;;;CAeP,CAAC;AACF,CAAC"}
|
|
@@ -491,25 +491,32 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
491
491
|
|
|
492
492
|
## Quick Navigation
|
|
493
493
|
|
|
494
|
-
| Task | Section |
|
|
494
|
+
| Task | Section | Section ID |
|
|
495
495
|
|------|---------|------------|
|
|
496
|
-
| **New feature module** | Directory Structure |
|
|
497
|
-
| **Write Query Hook** | Hook Guidelines > Query |
|
|
498
|
-
| **Write Mutation Hook** | Hook Guidelines > Mutation |
|
|
499
|
-
| **API calls** | API Guidelines |
|
|
500
|
-
| **State management** | State Guidelines |
|
|
501
|
-
| **Write component** | Component Guidelines |
|
|
502
|
-
| **Performance optimization** | Performance Guidelines |
|
|
503
|
-
| **Code quality check** | Quality Guidelines |
|
|
496
|
+
| **New feature module** | Directory Structure | \`directory-structure\` |
|
|
497
|
+
| **Write Query Hook** | Hook Guidelines > Query | \`query-hook\` |
|
|
498
|
+
| **Write Mutation Hook** | Hook Guidelines > Mutation | \`mutation-hook\` |
|
|
499
|
+
| **API calls** | API Guidelines | \`api-guidelines\` |
|
|
500
|
+
| **State management** | State Guidelines | \`state-management\` |
|
|
501
|
+
| **Write component** | Component Guidelines | \`component-guidelines\` |
|
|
502
|
+
| **Performance optimization** | Performance Guidelines | \`performance-guidelines\` |
|
|
503
|
+
| **Code quality check** | Quality Guidelines | \`quality-guidelines\` |
|
|
504
|
+
|
|
505
|
+
## How to Read Sections
|
|
506
|
+
|
|
507
|
+
\`\`\`bash
|
|
508
|
+
# Extract a specific section by ID
|
|
509
|
+
sed -n '/@@@section:query-hook/,/@@@\\/section:query-hook/p' doc.md
|
|
510
|
+
\`\`\`
|
|
504
511
|
|
|
505
512
|
## Core Rules
|
|
506
513
|
|
|
507
|
-
| Rule |
|
|
508
|
-
|
|
509
|
-
| Import types from backend |
|
|
510
|
-
| Use semantic HTML |
|
|
511
|
-
| Use Next.js Image |
|
|
512
|
-
| No non-null assertions |
|
|
514
|
+
| Rule | Section ID |
|
|
515
|
+
|------|------------|
|
|
516
|
+
| Import types from backend | \`type-safety\` |
|
|
517
|
+
| Use semantic HTML | \`semantic-html\` |
|
|
518
|
+
| Use Next.js Image | \`image-optimization\` |
|
|
519
|
+
| No non-null assertions | \`quality-guidelines\` |
|
|
513
520
|
|
|
514
521
|
## Reference Files
|
|
515
522
|
|
|
@@ -521,7 +528,7 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
521
528
|
|
|
522
529
|
---
|
|
523
530
|
|
|
524
|
-
|
|
531
|
+
**Language**: All documentation must be written in **English**.
|
|
525
532
|
`;
|
|
526
533
|
const frontendDoc = `# Frontend Development Guidelines
|
|
527
534
|
|
|
@@ -529,7 +536,8 @@ Fill in the line numbers and reference files based on your project's doc.md cont
|
|
|
529
536
|
|
|
530
537
|
---
|
|
531
538
|
|
|
532
|
-
|
|
539
|
+
@@@section:directory-structure
|
|
540
|
+
## 1. Directory Structure
|
|
533
541
|
|
|
534
542
|
\`\`\`
|
|
535
543
|
modules/
|
|
@@ -540,9 +548,12 @@ modules/
|
|
|
540
548
|
│ └── types.ts # Type definitions
|
|
541
549
|
\`\`\`
|
|
542
550
|
|
|
551
|
+
@@@/section:directory-structure
|
|
552
|
+
|
|
543
553
|
---
|
|
544
554
|
|
|
545
|
-
|
|
555
|
+
@@@section:type-safety
|
|
556
|
+
## 2. Type Safety
|
|
546
557
|
|
|
547
558
|
### Import Types from Backend
|
|
548
559
|
|
|
@@ -559,11 +570,15 @@ interface User {
|
|
|
559
570
|
}
|
|
560
571
|
\`\`\`
|
|
561
572
|
|
|
573
|
+
@@@/section:type-safety
|
|
574
|
+
|
|
562
575
|
---
|
|
563
576
|
|
|
564
|
-
|
|
577
|
+
@@@section:hook-guidelines
|
|
578
|
+
## 3. Hook Guidelines
|
|
565
579
|
|
|
566
|
-
|
|
580
|
+
@@@section:query-hook
|
|
581
|
+
### Query Hook
|
|
567
582
|
|
|
568
583
|
\`\`\`typescript
|
|
569
584
|
// Template for query hooks
|
|
@@ -577,7 +592,10 @@ export function useExample() {
|
|
|
577
592
|
}
|
|
578
593
|
\`\`\`
|
|
579
594
|
|
|
580
|
-
|
|
595
|
+
@@@/section:query-hook
|
|
596
|
+
|
|
597
|
+
@@@section:mutation-hook
|
|
598
|
+
### Mutation Hook
|
|
581
599
|
|
|
582
600
|
\`\`\`typescript
|
|
583
601
|
// Template for mutation hooks
|
|
@@ -595,22 +613,34 @@ export function useUpdateExample() {
|
|
|
595
613
|
}
|
|
596
614
|
\`\`\`
|
|
597
615
|
|
|
616
|
+
@@@/section:mutation-hook
|
|
617
|
+
|
|
618
|
+
@@@/section:hook-guidelines
|
|
619
|
+
|
|
598
620
|
---
|
|
599
621
|
|
|
600
|
-
|
|
622
|
+
@@@section:api-guidelines
|
|
623
|
+
## 4. API Guidelines
|
|
601
624
|
|
|
602
625
|
(Add your project-specific API guidelines here)
|
|
603
626
|
|
|
627
|
+
@@@/section:api-guidelines
|
|
628
|
+
|
|
604
629
|
---
|
|
605
630
|
|
|
606
|
-
|
|
631
|
+
@@@section:state-management
|
|
632
|
+
## 5. State Management
|
|
607
633
|
|
|
608
634
|
(Add your project-specific state management guidelines here)
|
|
609
635
|
|
|
636
|
+
@@@/section:state-management
|
|
637
|
+
|
|
610
638
|
---
|
|
611
639
|
|
|
612
|
-
|
|
640
|
+
@@@section:component-guidelines
|
|
641
|
+
## 6. Component Guidelines
|
|
613
642
|
|
|
643
|
+
@@@section:semantic-html
|
|
614
644
|
### Semantic HTML
|
|
615
645
|
|
|
616
646
|
Use proper HTML elements:
|
|
@@ -623,6 +653,9 @@ Use proper HTML elements:
|
|
|
623
653
|
<div role="button" onClick={handleClick}>Click me</div>
|
|
624
654
|
\`\`\`
|
|
625
655
|
|
|
656
|
+
@@@/section:semantic-html
|
|
657
|
+
|
|
658
|
+
@@@section:image-optimization
|
|
626
659
|
### Image Optimization
|
|
627
660
|
|
|
628
661
|
Use Next.js Image component:
|
|
@@ -636,15 +669,23 @@ import Image from 'next/image';
|
|
|
636
669
|
<img src="/logo.png" alt="Logo" />
|
|
637
670
|
\`\`\`
|
|
638
671
|
|
|
672
|
+
@@@/section:image-optimization
|
|
673
|
+
|
|
674
|
+
@@@/section:component-guidelines
|
|
675
|
+
|
|
639
676
|
---
|
|
640
677
|
|
|
641
|
-
|
|
678
|
+
@@@section:performance-guidelines
|
|
679
|
+
## 7. Performance Guidelines
|
|
642
680
|
|
|
643
681
|
(Add your project-specific performance guidelines here)
|
|
644
682
|
|
|
683
|
+
@@@/section:performance-guidelines
|
|
684
|
+
|
|
645
685
|
---
|
|
646
686
|
|
|
647
|
-
|
|
687
|
+
@@@section:quality-guidelines
|
|
688
|
+
## 8. Quality Guidelines
|
|
648
689
|
|
|
649
690
|
### Before Every Commit
|
|
650
691
|
|
|
@@ -658,9 +699,11 @@ import Image from 'next/image';
|
|
|
658
699
|
- No \`any\` type
|
|
659
700
|
- No unused imports/variables
|
|
660
701
|
|
|
702
|
+
@@@/section:quality-guidelines
|
|
703
|
+
|
|
661
704
|
---
|
|
662
705
|
|
|
663
|
-
**
|
|
706
|
+
**Language**: All documentation must be written in **English**.
|
|
664
707
|
`;
|
|
665
708
|
// Backend index.md
|
|
666
709
|
const backendIndex = `# Backend Development Guidelines Index
|
|
@@ -671,24 +714,31 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
671
714
|
|
|
672
715
|
## Quick Navigation
|
|
673
716
|
|
|
674
|
-
| Task | Section |
|
|
717
|
+
| Task | Section | Section ID |
|
|
675
718
|
|------|---------|------------|
|
|
676
|
-
| **New API module** | Directory Structure |
|
|
677
|
-
| **Type safety** | Type Safety |
|
|
678
|
-
| **Database operations** | Database Guidelines |
|
|
679
|
-
| **Error handling** | Error Handling |
|
|
680
|
-
| **Logging** | Logging Guidelines |
|
|
681
|
-
| **AI/Prompt** | AI Guidelines |
|
|
682
|
-
| **Code quality** | Quality Guidelines |
|
|
719
|
+
| **New API module** | Directory Structure | \`directory-structure\` |
|
|
720
|
+
| **Type safety** | Type Safety | \`type-safety\` |
|
|
721
|
+
| **Database operations** | Database Guidelines | \`database-guidelines\` |
|
|
722
|
+
| **Error handling** | Error Handling | \`error-handling\` |
|
|
723
|
+
| **Logging** | Logging Guidelines | \`logging-guidelines\` |
|
|
724
|
+
| **AI/Prompt** | AI Guidelines | \`ai-guidelines\` |
|
|
725
|
+
| **Code quality** | Quality Guidelines | \`quality-guidelines\` |
|
|
726
|
+
|
|
727
|
+
## How to Read Sections
|
|
728
|
+
|
|
729
|
+
\`\`\`bash
|
|
730
|
+
# Extract a specific section by ID
|
|
731
|
+
sed -n '/@@@section:database-guidelines/,/@@@\\/section:database-guidelines/p' doc.md
|
|
732
|
+
\`\`\`
|
|
683
733
|
|
|
684
734
|
## Core Rules
|
|
685
735
|
|
|
686
|
-
| Rule |
|
|
687
|
-
|
|
688
|
-
| No non-null assertions |
|
|
689
|
-
| All inputs/outputs need Zod Schema |
|
|
690
|
-
| Use structured logging |
|
|
691
|
-
| No await in loops |
|
|
736
|
+
| Rule | Section ID |
|
|
737
|
+
|------|------------|
|
|
738
|
+
| No non-null assertions | \`non-null-assertion\` |
|
|
739
|
+
| All inputs/outputs need Zod Schema | \`zod-schema\` |
|
|
740
|
+
| Use structured logging | \`logging-guidelines\` |
|
|
741
|
+
| No await in loops | \`no-await-in-loops\` |
|
|
692
742
|
|
|
693
743
|
## Reference Files
|
|
694
744
|
|
|
@@ -699,7 +749,7 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
699
749
|
|
|
700
750
|
---
|
|
701
751
|
|
|
702
|
-
|
|
752
|
+
**Language**: All documentation must be written in **English**.
|
|
703
753
|
`;
|
|
704
754
|
const backendDoc = `# Backend Development Guidelines
|
|
705
755
|
|
|
@@ -707,7 +757,8 @@ Fill in the line numbers and reference files based on your project's doc.md cont
|
|
|
707
757
|
|
|
708
758
|
---
|
|
709
759
|
|
|
710
|
-
|
|
760
|
+
@@@section:directory-structure
|
|
761
|
+
## 1. Directory Structure
|
|
711
762
|
|
|
712
763
|
\`\`\`
|
|
713
764
|
packages/api/modules/
|
|
@@ -719,11 +770,15 @@ packages/api/modules/
|
|
|
719
770
|
│ └── *.md
|
|
720
771
|
\`\`\`
|
|
721
772
|
|
|
773
|
+
@@@/section:directory-structure
|
|
774
|
+
|
|
722
775
|
---
|
|
723
776
|
|
|
724
|
-
|
|
777
|
+
@@@section:type-safety
|
|
778
|
+
## 2. Type Safety
|
|
725
779
|
|
|
726
|
-
|
|
780
|
+
@@@section:non-null-assertion
|
|
781
|
+
### No Non-Null Assertions
|
|
727
782
|
|
|
728
783
|
\`\`\`typescript
|
|
729
784
|
// ✅ Good - use local variable
|
|
@@ -737,7 +792,10 @@ const userName = user.name; // Safe access
|
|
|
737
792
|
const userName = user!.name;
|
|
738
793
|
\`\`\`
|
|
739
794
|
|
|
740
|
-
|
|
795
|
+
@@@/section:non-null-assertion
|
|
796
|
+
|
|
797
|
+
@@@section:zod-schema
|
|
798
|
+
### Zod Schema
|
|
741
799
|
|
|
742
800
|
\`\`\`typescript
|
|
743
801
|
// All inputs and outputs need Zod schemas
|
|
@@ -751,11 +809,17 @@ const outputSchema = z.object({
|
|
|
751
809
|
});
|
|
752
810
|
\`\`\`
|
|
753
811
|
|
|
812
|
+
@@@/section:zod-schema
|
|
813
|
+
|
|
814
|
+
@@@/section:type-safety
|
|
815
|
+
|
|
754
816
|
---
|
|
755
817
|
|
|
756
|
-
|
|
818
|
+
@@@section:database-guidelines
|
|
819
|
+
## 3. Database Guidelines
|
|
757
820
|
|
|
758
|
-
|
|
821
|
+
@@@section:no-await-in-loops
|
|
822
|
+
### No Await in Loops
|
|
759
823
|
|
|
760
824
|
\`\`\`typescript
|
|
761
825
|
// ✅ Good - parallel execution
|
|
@@ -769,7 +833,9 @@ for (const id of ids) {
|
|
|
769
833
|
}
|
|
770
834
|
\`\`\`
|
|
771
835
|
|
|
772
|
-
|
|
836
|
+
@@@/section:no-await-in-loops
|
|
837
|
+
|
|
838
|
+
### Batch Operations
|
|
773
839
|
|
|
774
840
|
\`\`\`typescript
|
|
775
841
|
// Use batch insert with conflict handling
|
|
@@ -779,15 +845,21 @@ await db.insert(users).values(data).onConflictDoUpdate({
|
|
|
779
845
|
});
|
|
780
846
|
\`\`\`
|
|
781
847
|
|
|
848
|
+
@@@/section:database-guidelines
|
|
849
|
+
|
|
782
850
|
---
|
|
783
851
|
|
|
784
|
-
|
|
852
|
+
@@@section:error-handling
|
|
853
|
+
## 4. Error Handling
|
|
785
854
|
|
|
786
855
|
(Add your project-specific error handling guidelines here)
|
|
787
856
|
|
|
857
|
+
@@@/section:error-handling
|
|
858
|
+
|
|
788
859
|
---
|
|
789
860
|
|
|
790
|
-
|
|
861
|
+
@@@section:logging-guidelines
|
|
862
|
+
## 5. Logging Guidelines
|
|
791
863
|
|
|
792
864
|
### Use Structured Logging
|
|
793
865
|
|
|
@@ -799,15 +871,21 @@ logger.info('User created', { userId: user.id, email: user.email });
|
|
|
799
871
|
console.log('User created: ' + user.id);
|
|
800
872
|
\`\`\`
|
|
801
873
|
|
|
874
|
+
@@@/section:logging-guidelines
|
|
875
|
+
|
|
802
876
|
---
|
|
803
877
|
|
|
804
|
-
|
|
878
|
+
@@@section:ai-guidelines
|
|
879
|
+
## 6. AI Guidelines
|
|
805
880
|
|
|
806
881
|
(Add your project-specific AI/prompt guidelines here)
|
|
807
882
|
|
|
883
|
+
@@@/section:ai-guidelines
|
|
884
|
+
|
|
808
885
|
---
|
|
809
886
|
|
|
810
|
-
|
|
887
|
+
@@@section:quality-guidelines
|
|
888
|
+
## 7. Quality Guidelines
|
|
811
889
|
|
|
812
890
|
### Before Every Commit
|
|
813
891
|
|
|
@@ -821,9 +899,11 @@ console.log('User created: ' + user.id);
|
|
|
821
899
|
- No \`console.log\` (use logger)
|
|
822
900
|
- No await in loops
|
|
823
901
|
|
|
902
|
+
@@@/section:quality-guidelines
|
|
903
|
+
|
|
824
904
|
---
|
|
825
905
|
|
|
826
|
-
**
|
|
906
|
+
**Language**: All documentation must be written in **English**.
|
|
827
907
|
`;
|
|
828
908
|
fs.writeFileSync(path.join(cwd, "workflow/structure/frontend/index.md"), frontendIndex);
|
|
829
909
|
fs.writeFileSync(path.join(cwd, "workflow/structure/frontend/doc.md"), frontendDoc);
|
|
@@ -955,7 +1035,7 @@ Based on what you'll develop (frontend/backend), read the corresponding guidelin
|
|
|
955
1035
|
cat workflow/structure/frontend/index.md
|
|
956
1036
|
\`\`\`
|
|
957
1037
|
- Find corresponding chapters based on task type (e.g., "New Query Hook", "Write Component")
|
|
958
|
-
- Note down chapter names and
|
|
1038
|
+
- Note down chapter names and **section IDs** (e.g., \`query-hook\`)
|
|
959
1039
|
- This is **mandatory**, not optional
|
|
960
1040
|
|
|
961
1041
|
**Backend Development**:
|
|
@@ -963,29 +1043,27 @@ cat workflow/structure/frontend/index.md
|
|
|
963
1043
|
cat workflow/structure/backend/index.md
|
|
964
1044
|
\`\`\`
|
|
965
1045
|
- Find corresponding chapters based on scenario (e.g., "New API Module", "Write Batch Tasks")
|
|
966
|
-
- Note down chapter names and
|
|
1046
|
+
- Note down chapter names and **section IDs** (e.g., \`database-guidelines\`)
|
|
967
1047
|
- This is **mandatory**, not optional
|
|
968
1048
|
|
|
969
1049
|
### Step 3: Read Specific Guidelines ⚠️ REQUIRED
|
|
970
1050
|
|
|
971
1051
|
**⚠️ CRITICAL: Read detailed guidelines for your specific task**
|
|
972
1052
|
|
|
973
|
-
Based on
|
|
1053
|
+
Based on section IDs found in index, extract specific sections:
|
|
974
1054
|
|
|
975
1055
|
**Frontend**:
|
|
976
1056
|
\`\`\`bash
|
|
977
|
-
#
|
|
978
|
-
|
|
979
|
-
Read workflow/structure/frontend/doc.md --offset 179 --limit 85
|
|
1057
|
+
# Extract specific section by ID
|
|
1058
|
+
sed -n '/@@@section:query-hook/,/@@@\\/section:query-hook/p' workflow/structure/frontend/doc.md
|
|
980
1059
|
\`\`\`
|
|
981
1060
|
- **MUST read** the sections relevant to your task
|
|
982
1061
|
- Do NOT skip this step
|
|
983
1062
|
|
|
984
1063
|
**Backend**:
|
|
985
1064
|
\`\`\`bash
|
|
986
|
-
#
|
|
987
|
-
|
|
988
|
-
Read workflow/structure/backend/doc.md --offset 5 --limit 23
|
|
1065
|
+
# Extract specific section by ID
|
|
1066
|
+
sed -n '/@@@section:database-guidelines/,/@@@\\/section:database-guidelines/p' workflow/structure/backend/doc.md
|
|
989
1067
|
\`\`\`
|
|
990
1068
|
- **MUST read** the sections relevant to your task
|
|
991
1069
|
- Do NOT skip this step
|
|
@@ -1175,6 +1253,7 @@ planned → in-progress → completed
|
|
|
1175
1253
|
7. ⚠️ **Don't** execute \`git commit\` - AI should not commit code
|
|
1176
1254
|
- Only allowed: \`git log\`, \`git status\`, \`git diff\`
|
|
1177
1255
|
- Human is responsible for testing and committing
|
|
1256
|
+
8. **Don't** write \`workflow/structure/\` docs in Chinese - **English only**
|
|
1178
1257
|
|
|
1179
1258
|
---
|
|
1180
1259
|
|
|
@@ -1213,13 +1292,13 @@ git status
|
|
|
1213
1292
|
|
|
1214
1293
|
### Must-read Before Development
|
|
1215
1294
|
|
|
1216
|
-
| Task Type | Must-read Document |
|
|
1295
|
+
| Task Type | Must-read Document | Section ID |
|
|
1217
1296
|
|---------|---------|------|
|
|
1218
|
-
| New Frontend Query Hook | \`frontend/doc.md\` |
|
|
1219
|
-
| New Frontend Mutation Hook | \`frontend/doc.md\` |
|
|
1220
|
-
| New Frontend Component | \`frontend/doc.md\` |
|
|
1221
|
-
| New Backend API | \`backend/doc.md\` |
|
|
1222
|
-
| Database Batch Operations | \`backend/doc.md\` |
|
|
1297
|
+
| New Frontend Query Hook | \`frontend/doc.md\` | \`query-hook\` |
|
|
1298
|
+
| New Frontend Mutation Hook | \`frontend/doc.md\` | \`mutation-hook\` |
|
|
1299
|
+
| New Frontend Component | \`frontend/doc.md\` | \`component-guidelines\` |
|
|
1300
|
+
| New Backend API | \`backend/doc.md\` | \`directory-structure\`, \`type-safety\` |
|
|
1301
|
+
| Database Batch Operations | \`backend/doc.md\` | \`database-guidelines\` |
|
|
1223
1302
|
|
|
1224
1303
|
### Commit Convention
|
|
1225
1304
|
|
|
@@ -1339,6 +1418,10 @@ workflow/
|
|
|
1339
1418
|
| \`/record-agent-flow\` | Record progress to agent-progress | After human commits code |
|
|
1340
1419
|
| \`/generate-frontend-structure\` | Auto-generate frontend guidelines | Setting up project standards |
|
|
1341
1420
|
| \`/generate-backend-structure\` | Auto-generate backend guidelines | Setting up project standards |
|
|
1421
|
+
| \`/before-frontend-dev\` | Read frontend guidelines before development | Before writing frontend code |
|
|
1422
|
+
| \`/before-backend-dev\` | Read backend guidelines before development | Before writing backend code |
|
|
1423
|
+
| \`/update-frontend-structure\` | Update frontend guidelines with new patterns | When new patterns are found |
|
|
1424
|
+
| \`/update-backend-structure\` | Update backend guidelines with new patterns | When new patterns are found |
|
|
1342
1425
|
|
|
1343
1426
|
### 1.5 AI Permission Boundaries
|
|
1344
1427
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAW;IACxD,qBAAqB;IACrB,MAAM,IAAI,GAAG;QACZ,UAAU;QACV,kBAAkB;QAClB,yBAAyB;QACzB,oBAAoB;QACpB,6BAA6B;QAC7B,4BAA4B;KAC5B,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,iBAAiB;IACjB,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IAEzB,8BAA8B;IAC9B,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAEpC,6BAA6B;IAC7B,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAEpC,sBAAsB;IACtB,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE7B,iBAAiB;IACjB,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IAExB,6BAA6B;IAC7B,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAEjC,iCAAiC;IACjC,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqG5B,CAAC;IAED,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;IAED,EAAE,CAAC,aAAa,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,EACpD,mBAAmB,CACnB,CAAC;IACF,EAAE,CAAC,aAAa,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mCAAmC,CAAC,EACnD,kBAAkB,CAClB,CAAC;IAEF,0BAA0B;IAC1B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mCAAmC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzE,uCAAuC;IACvC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmQhC,CAAC;IAED,EAAE,CAAC,aAAa,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yCAAyC,CAAC,EACzD,uBAAuB,CACvB,CAAC;IACF,EAAE,CAAC,SAAS,CACX,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yCAAyC,CAAC,EACzD,KAAK,CACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAW;IAClD,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DhB,CAAC;IAED,EAAE,CAAC,aAAa,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,EAClD,OAAO,CACP,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAW;IAClD,oBAAoB;IACpB,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
|