@mind-fold/open-flow 0.1.7 → 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
CHANGED
|
@@ -107,16 +107,21 @@ Fill in your project-specific guidelines in:
|
|
|
107
107
|
- `workflow/structure/frontend/doc.md`
|
|
108
108
|
- `workflow/structure/backend/doc.md`
|
|
109
109
|
|
|
110
|
-
|
|
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
|
|
111
114
|
|
|
112
115
|
## Key Concepts
|
|
113
116
|
|
|
114
117
|
### index.md + doc.md Structure
|
|
115
118
|
|
|
116
119
|
Instead of reading entire guideline documents (which can be 1000+ lines), AI:
|
|
117
|
-
1. Reads the lightweight `index.md` (navigation table)
|
|
118
|
-
2. Finds relevant section
|
|
119
|
-
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.
|
|
120
125
|
|
|
121
126
|
This saves tokens and improves focus.
|
|
122
127
|
|
|
@@ -34,8 +34,8 @@ function getCheckFrontendTemplate() {
|
|
|
34
34
|
|
|
35
35
|
Execute these steps:
|
|
36
36
|
1. Run \`git status\` to see modified files
|
|
37
|
-
2. Read \`workflow/structure/frontend/index.md\` to find relevant
|
|
38
|
-
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\`
|
|
39
39
|
4. Review your code against the guidelines
|
|
40
40
|
5. Report any violations and fix them if found
|
|
41
41
|
`;
|
|
@@ -45,8 +45,8 @@ function getCheckBackendTemplate() {
|
|
|
45
45
|
|
|
46
46
|
Execute these steps:
|
|
47
47
|
1. Run \`git status\` to see modified files
|
|
48
|
-
2. Read \`workflow/structure/backend/index.md\` to find relevant
|
|
49
|
-
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\`
|
|
50
50
|
4. Review your code against the guidelines
|
|
51
51
|
5. Report any violations and fix them if found
|
|
52
52
|
`;
|
|
@@ -105,18 +105,15 @@ function getGenerateFrontendStructureTemplate() {
|
|
|
105
105
|
|
|
106
106
|
## Task Description
|
|
107
107
|
|
|
108
|
-
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.
|
|
109
109
|
|
|
110
110
|
---
|
|
111
111
|
|
|
112
|
-
## ⚠️ CRITICAL:
|
|
112
|
+
## ⚠️ CRITICAL: Requirements
|
|
113
113
|
|
|
114
|
-
**
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
3. **Finally**: Generate \`index.md\` using the line numbers from step 2
|
|
118
|
-
|
|
119
|
-
**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
|
|
120
117
|
|
|
121
118
|
---
|
|
122
119
|
|
|
@@ -188,9 +185,7 @@ find [frontend-dir] -type d -maxdepth 3 | head -50
|
|
|
188
185
|
- Local state
|
|
189
186
|
- URL state synchronization
|
|
190
187
|
|
|
191
|
-
### Step 4: Generate \`doc.md\`
|
|
192
|
-
|
|
193
|
-
⚠️ **Generate doc.md BEFORE index.md**
|
|
188
|
+
### Step 4: Generate \`doc.md\` with Section Markers
|
|
194
189
|
|
|
195
190
|
Create directory and generate detailed guidelines:
|
|
196
191
|
|
|
@@ -205,16 +200,24 @@ mkdir -p workflow/structure/frontend
|
|
|
205
200
|
|
|
206
201
|
These guidelines define the development standards and best practices for [Project Name] frontend modules.
|
|
207
202
|
|
|
203
|
+
@@@section:directory-structure
|
|
208
204
|
## 📁 Directory Structure Guidelines
|
|
209
205
|
|
|
206
|
+
@@@section:module-organization
|
|
210
207
|
### Module Organization
|
|
211
208
|
[Describe directory structure with tree diagram code block]
|
|
212
209
|
|
|
213
210
|
**Reference Example**:
|
|
214
211
|
- \`[path]\` - [description]
|
|
215
212
|
|
|
213
|
+
@@@/section:module-organization
|
|
214
|
+
|
|
215
|
+
@@@/section:directory-structure
|
|
216
|
+
|
|
217
|
+
@@@section:type-safety
|
|
216
218
|
## 🎯 Type Safety Guidelines
|
|
217
219
|
|
|
220
|
+
@@@section:backend-contract-types
|
|
218
221
|
### 1. Backend Contract Types vs Frontend View Models
|
|
219
222
|
|
|
220
223
|
#### ✅ Correct Approach - Import Types from Backend
|
|
@@ -223,23 +226,40 @@ These guidelines define the development standards and best practices for [Projec
|
|
|
223
226
|
#### ❌ Wrong Approach
|
|
224
227
|
[anti-pattern code example]
|
|
225
228
|
|
|
229
|
+
@@@/section:backend-contract-types
|
|
230
|
+
|
|
231
|
+
@@@/section:type-safety
|
|
232
|
+
|
|
233
|
+
@@@section:hook-development
|
|
226
234
|
## 🪝 Hook Development Guidelines
|
|
227
235
|
|
|
236
|
+
@@@section:query-hook-guidelines
|
|
228
237
|
### 1. Query Hook Standards
|
|
229
238
|
|
|
230
239
|
#### ✅ Correct Query Hook Pattern
|
|
231
240
|
[code example]
|
|
232
241
|
|
|
242
|
+
@@@/section:query-hook-guidelines
|
|
243
|
+
|
|
244
|
+
@@@section:mutation-hook-guidelines
|
|
233
245
|
### 2. Mutation Hook Standards
|
|
234
246
|
|
|
235
247
|
#### ✅ Correct Mutation Hook Pattern
|
|
236
248
|
[code example]
|
|
237
249
|
|
|
250
|
+
@@@/section:mutation-hook-guidelines
|
|
251
|
+
|
|
252
|
+
@@@/section:hook-development
|
|
253
|
+
|
|
254
|
+
@@@section:api-calls
|
|
238
255
|
## 🔌 API Call Guidelines
|
|
239
256
|
|
|
240
257
|
### Basic Usage
|
|
241
258
|
[code example]
|
|
242
259
|
|
|
260
|
+
@@@/section:api-calls
|
|
261
|
+
|
|
262
|
+
@@@section:state-management
|
|
243
263
|
## 🏗️ State Management Guidelines
|
|
244
264
|
|
|
245
265
|
### 1. URL State Management
|
|
@@ -248,6 +268,9 @@ These guidelines define the development standards and best practices for [Projec
|
|
|
248
268
|
### 2. React Context Standards
|
|
249
269
|
[code example]
|
|
250
270
|
|
|
271
|
+
@@@/section:state-management
|
|
272
|
+
|
|
273
|
+
@@@section:component-development
|
|
251
274
|
## 🎨 Component Development Guidelines
|
|
252
275
|
|
|
253
276
|
### 1. Component Structure
|
|
@@ -256,51 +279,43 @@ These guidelines define the development standards and best practices for [Projec
|
|
|
256
279
|
### 2. Styling Standards
|
|
257
280
|
[code example]
|
|
258
281
|
|
|
282
|
+
@@@/section:component-development
|
|
283
|
+
|
|
284
|
+
@@@section:performance-optimization
|
|
259
285
|
## ⚡ Performance Optimization Guidelines
|
|
260
286
|
|
|
261
287
|
[performance rules]
|
|
262
288
|
|
|
289
|
+
@@@/section:performance-optimization
|
|
290
|
+
|
|
291
|
+
@@@section:code-quality
|
|
263
292
|
## 🔍 Code Quality Guidelines
|
|
264
293
|
|
|
265
294
|
### Lint and Formatting
|
|
266
295
|
[tool configuration and usage]
|
|
267
296
|
|
|
297
|
+
@@@/section:code-quality
|
|
298
|
+
|
|
299
|
+
@@@section:checklist
|
|
268
300
|
## ✅ Checklist
|
|
269
301
|
|
|
270
302
|
- [ ] Code passes lint check
|
|
271
303
|
- [ ] Type check passes
|
|
272
304
|
- [ ] [other check items...]
|
|
273
305
|
|
|
306
|
+
@@@/section:checklist
|
|
307
|
+
|
|
308
|
+
@@@section:reference-examples
|
|
274
309
|
## 📚 Reference Examples
|
|
275
310
|
|
|
276
311
|
| Feature | Reference File |
|
|
277
312
|
|---------|----------------|
|
|
278
313
|
| [Feature1] | \`[path]\` |
|
|
279
|
-
\`\`\`
|
|
280
|
-
|
|
281
|
-
### Step 5: Extract Line Numbers with Script
|
|
282
|
-
|
|
283
|
-
⚠️ **REQUIRED: Run this AFTER generating doc.md**
|
|
284
314
|
|
|
285
|
-
|
|
286
|
-
# Get all headings with line number ranges
|
|
287
|
-
./workflow/scripts/extract-md-headings.sh workflow/structure/frontend/doc.md -l 1,2,3 -r
|
|
288
|
-
|
|
289
|
-
# Example output:
|
|
290
|
-
# Level Line Range Title
|
|
291
|
-
# ---- ---- ---- ----
|
|
292
|
-
# 1 1 L1-15 Frontend Development Guidelines
|
|
293
|
-
# 2 5 L5-28 📁 Directory Structure Guidelines
|
|
294
|
-
# 2 30 L30-65 🎯 Type Safety Guidelines
|
|
295
|
-
# 2 67 L67-120 🪝 Hook Development Guidelines
|
|
296
|
-
# ...
|
|
315
|
+
@@@/section:reference-examples
|
|
297
316
|
\`\`\`
|
|
298
317
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
### Step 6: Generate \`index.md\` with Accurate Line Numbers
|
|
302
|
-
|
|
303
|
-
⚠️ **Use the EXACT line numbers from Step 5**
|
|
318
|
+
### Step 5: Generate \`index.md\` with Section IDs
|
|
304
319
|
|
|
305
320
|
\`\`\`markdown
|
|
306
321
|
# Frontend Development Guidelines Index
|
|
@@ -311,40 +326,46 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
311
326
|
|
|
312
327
|
## Quick Navigation
|
|
313
328
|
|
|
314
|
-
| Development Task | Section to Read |
|
|
329
|
+
| Development Task | Section to Read | Section ID |
|
|
315
330
|
|-----------------|-----------------|------------|
|
|
316
|
-
| **New feature module** | Directory Structure |
|
|
317
|
-
| **Write Query Hook** | Hook Guidelines > Query Hook |
|
|
318
|
-
| **Write Mutation Hook** | Hook Guidelines > Mutation Hook |
|
|
319
|
-
| **API calls** | API Call Guidelines |
|
|
320
|
-
| **State management** | State Management Guidelines |
|
|
321
|
-
| **Write component** | Component Guidelines |
|
|
322
|
-
| **Performance optimization** | Performance Guidelines |
|
|
323
|
-
| **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
|
+
\\\`\\\`\\\`
|
|
324
346
|
|
|
325
347
|
## By Development Scenario
|
|
326
348
|
|
|
327
349
|
### Scenario 1: Create a new Query Hook
|
|
328
350
|
|
|
329
351
|
**Required Reading**:
|
|
330
|
-
- Type Safety > Backend Contract Types (
|
|
331
|
-
- Hook Guidelines > Query Hook (
|
|
352
|
+
- Type Safety > Backend Contract Types (\`backend-contract-types\`)
|
|
353
|
+
- Hook Guidelines > Query Hook (\`query-hook-guidelines\`)
|
|
332
354
|
|
|
333
355
|
### Scenario 2: Create a new UI Component
|
|
334
356
|
|
|
335
357
|
**Required Reading**:
|
|
336
|
-
- Component Guidelines
|
|
337
|
-
- Component Guidelines > Styling Standards (L202-220)
|
|
358
|
+
- Component Guidelines (\`component-development\`)
|
|
338
359
|
|
|
339
360
|
[... add more scenarios based on project needs ...]
|
|
340
361
|
|
|
341
362
|
## Core Rules Quick Reference
|
|
342
363
|
|
|
343
|
-
| Rule |
|
|
344
|
-
|
|
345
|
-
| Import types from backend, don't redefine |
|
|
346
|
-
|
|
|
347
|
-
| [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\` |
|
|
348
369
|
|
|
349
370
|
## Reference Example Files
|
|
350
371
|
|
|
@@ -360,19 +381,18 @@ This index helps you quickly locate the guidelines you need based on your task t
|
|
|
360
381
|
## Output Requirements
|
|
361
382
|
|
|
362
383
|
1. **Create directory**: \`mkdir -p workflow/structure/frontend\`
|
|
363
|
-
2. **
|
|
364
|
-
3. **
|
|
365
|
-
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
|
|
366
387
|
5. **Use actual project code**: Examples should come from real project files
|
|
367
388
|
|
|
368
389
|
---
|
|
369
390
|
|
|
370
391
|
## Completion Confirmation
|
|
371
392
|
|
|
372
|
-
- [ ] \`doc.md\` created with detailed guidelines
|
|
373
|
-
- [ ]
|
|
374
|
-
- [ ] \`index.md\` created with
|
|
375
|
-
- [ ] 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
|
|
376
396
|
- [ ] Example code from actual project files
|
|
377
397
|
- [ ] Covers all major patterns used in project
|
|
378
398
|
|
|
@@ -384,18 +404,15 @@ function getGenerateBackendStructureTemplate() {
|
|
|
384
404
|
|
|
385
405
|
## Task Description
|
|
386
406
|
|
|
387
|
-
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.
|
|
388
408
|
|
|
389
409
|
---
|
|
390
410
|
|
|
391
|
-
## ⚠️ CRITICAL:
|
|
392
|
-
|
|
393
|
-
**MUST follow this order:**
|
|
394
|
-
1. **First**: Generate \`doc.md\` (detailed guidelines)
|
|
395
|
-
2. **Then**: Run \`./workflow/scripts/extract-md-headings.sh doc.md -r\` to get accurate line numbers
|
|
396
|
-
3. **Finally**: Generate \`index.md\` using the line numbers from step 2
|
|
411
|
+
## ⚠️ CRITICAL: Requirements
|
|
397
412
|
|
|
398
|
-
|
|
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
|
|
399
416
|
|
|
400
417
|
---
|
|
401
418
|
|
|
@@ -473,9 +490,7 @@ find [backend-dir] -type d -maxdepth 3 | head -50
|
|
|
473
490
|
- Log level usage
|
|
474
491
|
- Structured log format
|
|
475
492
|
|
|
476
|
-
### Step 4: Generate \`doc.md\`
|
|
477
|
-
|
|
478
|
-
⚠️ **Generate doc.md BEFORE index.md**
|
|
493
|
+
### Step 4: Generate \`doc.md\` with Section Markers
|
|
479
494
|
|
|
480
495
|
Create directory and generate detailed guidelines:
|
|
481
496
|
|
|
@@ -490,13 +505,18 @@ mkdir -p workflow/structure/backend
|
|
|
490
505
|
|
|
491
506
|
These guidelines define the development standards and best practices for [Project Name] backend modules.
|
|
492
507
|
|
|
508
|
+
@@@section:directory-structure
|
|
493
509
|
## 📁 Directory Structure Guidelines
|
|
494
510
|
|
|
495
511
|
### Module Organization
|
|
496
512
|
[describe directory structure]
|
|
497
513
|
|
|
514
|
+
@@@/section:directory-structure
|
|
515
|
+
|
|
516
|
+
@@@section:type-safety
|
|
498
517
|
## 🎯 Type Safety Guidelines
|
|
499
518
|
|
|
519
|
+
@@@section:non-null-assertion
|
|
500
520
|
### 1. TypeScript Non-null Assertion Rules
|
|
501
521
|
|
|
502
522
|
**Never use non-null assertion operator (\`!\`), use local variable extraction instead**
|
|
@@ -522,10 +542,16 @@ if (user.profileId) {
|
|
|
522
542
|
}
|
|
523
543
|
\\\`\\\`\\\`
|
|
524
544
|
|
|
545
|
+
@@@/section:non-null-assertion
|
|
546
|
+
|
|
547
|
+
@@@section:zod-schema
|
|
525
548
|
### 2. Zod Schema Definition
|
|
526
549
|
|
|
527
550
|
**All API endpoints must use Zod to define input/output schemas**
|
|
528
551
|
|
|
552
|
+
@@@/section:zod-schema
|
|
553
|
+
|
|
554
|
+
@@@section:response-format
|
|
529
555
|
### 3. Response Format Standards
|
|
530
556
|
|
|
531
557
|
#### Single Operation Response
|
|
@@ -534,7 +560,6 @@ if (user.profileId) {
|
|
|
534
560
|
success: boolean, // operation result
|
|
535
561
|
reason?: string, // success message or failure reason
|
|
536
562
|
error?: string, // detailed error info
|
|
537
|
-
// ... other domain-specific fields
|
|
538
563
|
}
|
|
539
564
|
\\\`\\\`\\\`
|
|
540
565
|
|
|
@@ -549,27 +574,30 @@ if (user.profileId) {
|
|
|
549
574
|
}
|
|
550
575
|
\\\`\\\`\\\`
|
|
551
576
|
|
|
577
|
+
@@@/section:response-format
|
|
578
|
+
|
|
579
|
+
@@@/section:type-safety
|
|
580
|
+
|
|
581
|
+
@@@section:logging
|
|
552
582
|
## 🪵 Logging Guidelines
|
|
553
583
|
|
|
554
584
|
### Use Structured Logging
|
|
555
585
|
|
|
556
586
|
**Never use \`console.log\` or \`console.error\`**
|
|
557
587
|
|
|
558
|
-
|
|
559
|
-
[code example using logger]
|
|
588
|
+
[code examples]
|
|
560
589
|
|
|
561
|
-
|
|
562
|
-
[anti-pattern example]
|
|
590
|
+
@@@/section:logging
|
|
563
591
|
|
|
592
|
+
@@@section:database-operations
|
|
564
593
|
## 🗄️ Database Operation Guidelines
|
|
565
594
|
|
|
595
|
+
@@@section:no-loops
|
|
566
596
|
### 🚨 Never Execute Database Operations in Loops
|
|
567
597
|
|
|
568
|
-
|
|
569
|
-
[anti-pattern code example]
|
|
598
|
+
[anti-pattern and correct pattern examples]
|
|
570
599
|
|
|
571
|
-
|
|
572
|
-
[correct pattern code example]
|
|
600
|
+
@@@/section:no-loops
|
|
573
601
|
|
|
574
602
|
### Batch Insert
|
|
575
603
|
[code example]
|
|
@@ -577,6 +605,9 @@ if (user.profileId) {
|
|
|
577
605
|
### Conflict Handling
|
|
578
606
|
[code example with onConflictDoUpdate]
|
|
579
607
|
|
|
608
|
+
@@@/section:database-operations
|
|
609
|
+
|
|
610
|
+
@@@section:error-handling
|
|
580
611
|
## 🎨 Error Handling
|
|
581
612
|
|
|
582
613
|
### Graceful Degradation
|
|
@@ -585,6 +616,9 @@ if (user.profileId) {
|
|
|
585
616
|
### Promise.allSettled
|
|
586
617
|
[code example for batch operations]
|
|
587
618
|
|
|
619
|
+
@@@/section:error-handling
|
|
620
|
+
|
|
621
|
+
@@@section:router-guidelines
|
|
588
622
|
## 🎯 Router Guidelines
|
|
589
623
|
|
|
590
624
|
### Hono Router Example
|
|
@@ -593,6 +627,9 @@ if (user.profileId) {
|
|
|
593
627
|
### oRPC Router Example
|
|
594
628
|
[code example]
|
|
595
629
|
|
|
630
|
+
@@@/section:router-guidelines
|
|
631
|
+
|
|
632
|
+
@@@section:checklist
|
|
596
633
|
## ✅ Checklist
|
|
597
634
|
|
|
598
635
|
Before committing, confirm:
|
|
@@ -608,80 +645,70 @@ Before committing, confirm:
|
|
|
608
645
|
- [ ] \`pnpm lint\` passes
|
|
609
646
|
- [ ] \`pnpm type-check\` passes
|
|
610
647
|
|
|
648
|
+
@@@/section:checklist
|
|
649
|
+
|
|
650
|
+
@@@section:reference-examples
|
|
611
651
|
## 📚 Reference Examples
|
|
612
652
|
|
|
613
653
|
| Feature | Reference File |
|
|
614
654
|
|---------|----------------|
|
|
615
655
|
| [Feature1] | \`[path]\` |
|
|
616
|
-
\`\`\`
|
|
617
656
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
⚠️ **REQUIRED: Run this AFTER generating doc.md**
|
|
621
|
-
|
|
622
|
-
\`\`\`bash
|
|
623
|
-
# Get all headings with line number ranges
|
|
624
|
-
./workflow/scripts/extract-md-headings.sh workflow/structure/backend/doc.md -l 1,2,3 -r
|
|
625
|
-
|
|
626
|
-
# Example output:
|
|
627
|
-
# Level Line Range Title
|
|
628
|
-
# ---- ---- ---- ----
|
|
629
|
-
# 1 1 L1-15 Backend Development Guidelines
|
|
630
|
-
# 2 5 L5-28 📁 Directory Structure Guidelines
|
|
631
|
-
# 2 30 L30-85 🎯 Type Safety Guidelines
|
|
632
|
-
# 2 87 L87-120 🪵 Logging Guidelines
|
|
633
|
-
# ...
|
|
657
|
+
@@@/section:reference-examples
|
|
634
658
|
\`\`\`
|
|
635
659
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
### Step 6: Generate \`index.md\` with Accurate Line Numbers
|
|
639
|
-
|
|
640
|
-
⚠️ **Use the EXACT line numbers from Step 5**
|
|
660
|
+
### Step 5: Generate \`index.md\` with Section IDs
|
|
641
661
|
|
|
642
662
|
\`\`\`markdown
|
|
643
663
|
# Backend Development Guidelines Index
|
|
644
664
|
|
|
645
665
|
> **Full Documentation**: See \`./doc.md\` for detailed guidelines
|
|
646
666
|
|
|
647
|
-
This index helps you quickly locate the sections
|
|
667
|
+
This index helps you quickly locate the sections needed for backend tasks.
|
|
648
668
|
|
|
649
669
|
## Quick Navigation
|
|
650
670
|
|
|
651
|
-
| Section | Key Content |
|
|
671
|
+
| Section | Key Content | Section ID |
|
|
652
672
|
|---------|-------------|------------|
|
|
653
|
-
| 📁 Directory Structure | Module directory template, examples |
|
|
654
|
-
| 🎯 Type Safety Guidelines | TypeScript rules, Zod Schema |
|
|
655
|
-
| 🪵 Logging Guidelines | Structured logging, no console |
|
|
656
|
-
| 🗄️ Database
|
|
657
|
-
| 🎨 Error Handling | Graceful degradation, response format |
|
|
658
|
-
| 🎯 Router Guidelines | Route definitions, middleware |
|
|
659
|
-
| ✅ 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
|
+
\\\`\\\`\\\`
|
|
660
687
|
|
|
661
688
|
## By Scenario
|
|
662
689
|
|
|
663
690
|
### Scenario 1: Create New API Module
|
|
664
|
-
- Required: 📁 Directory Structure (
|
|
665
|
-
- Also read: 🎯 Type Safety Guidelines (
|
|
691
|
+
- Required: 📁 Directory Structure (\`directory-structure\`)
|
|
692
|
+
- Also read: 🎯 Type Safety Guidelines (\`type-safety\`)
|
|
666
693
|
|
|
667
694
|
### Scenario 2: Write Database Operations
|
|
668
|
-
- Required: 🗄️ Database
|
|
669
|
-
- Reference: 🎨 Error Handling (
|
|
695
|
+
- Required: 🗄️ Database Operations (\`database-operations\`)
|
|
696
|
+
- Reference: 🎨 Error Handling (\`error-handling\`)
|
|
670
697
|
|
|
671
698
|
### Scenario 3: Add New Endpoint
|
|
672
|
-
- Required: 🎯 Router Guidelines (
|
|
673
|
-
- Reference: 🎯 Type Safety Guidelines (
|
|
699
|
+
- Required: 🎯 Router Guidelines (\`router-guidelines\`)
|
|
700
|
+
- Reference: 🎯 Type Safety Guidelines (\`type-safety\`)
|
|
674
701
|
|
|
675
702
|
[... add more scenarios based on project needs ...]
|
|
676
703
|
|
|
677
704
|
## Core Rules Quick Reference
|
|
678
705
|
|
|
679
|
-
| Rule |
|
|
680
|
-
|
|
681
|
-
| **All inputs/outputs must have Zod Schema** |
|
|
682
|
-
| **Response body must include success + reason** |
|
|
683
|
-
| **Never await database in loops** |
|
|
684
|
-
|
|
|
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\` |
|
|
685
712
|
|
|
686
713
|
## Reference Examples
|
|
687
714
|
|
|
@@ -697,19 +724,18 @@ This index helps you quickly locate the sections and line numbers needed for bac
|
|
|
697
724
|
## Output Requirements
|
|
698
725
|
|
|
699
726
|
1. **Create directory**: \`mkdir -p workflow/structure/backend\`
|
|
700
|
-
2. **
|
|
701
|
-
3. **
|
|
702
|
-
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
|
|
703
730
|
5. **Use actual project code**: Examples should come from real project files
|
|
704
731
|
|
|
705
732
|
---
|
|
706
733
|
|
|
707
734
|
## Completion Confirmation
|
|
708
735
|
|
|
709
|
-
- [ ] \`doc.md\` created with detailed guidelines
|
|
710
|
-
- [ ]
|
|
711
|
-
- [ ] \`index.md\` created with
|
|
712
|
-
- [ ] 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
|
|
713
739
|
- [ ] Example code from actual project files
|
|
714
740
|
- [ ] Covers all major patterns used in project
|
|
715
741
|
|
|
@@ -720,8 +746,8 @@ function getBeforeFrontendDevTemplate() {
|
|
|
720
746
|
return `Read the frontend development guidelines before starting your development task.
|
|
721
747
|
|
|
722
748
|
Execute these steps:
|
|
723
|
-
1. Read \`workflow/structure/frontend/index.md\` to find relevant
|
|
724
|
-
2.
|
|
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\`
|
|
725
751
|
3. Understand the coding standards and patterns you need to follow
|
|
726
752
|
4. Then proceed with your development plan
|
|
727
753
|
|
|
@@ -732,8 +758,8 @@ function getBeforeBackendDevTemplate() {
|
|
|
732
758
|
return `Read the backend development guidelines before starting your development task.
|
|
733
759
|
|
|
734
760
|
Execute these steps:
|
|
735
|
-
1. Read \`workflow/structure/backend/index.md\` to find relevant
|
|
736
|
-
2.
|
|
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\`
|
|
737
763
|
3. Understand the coding standards and patterns you need to follow
|
|
738
764
|
4. Then proceed with your development plan
|
|
739
765
|
|
|
@@ -748,11 +774,13 @@ Execute these steps:
|
|
|
748
774
|
2. Check if any new patterns or conventions were introduced
|
|
749
775
|
3. Read current guidelines: \`workflow/structure/frontend/doc.md\`
|
|
750
776
|
4. If updates are needed:
|
|
751
|
-
- Update \`doc.md\` with new patterns or rules
|
|
752
|
-
-
|
|
753
|
-
- Update \`index.md\` with
|
|
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
|
|
754
780
|
5. Report what was updated (if anything)
|
|
755
781
|
|
|
782
|
+
**Language requirement**: All documentation must be written in **English**.
|
|
783
|
+
|
|
756
784
|
Only update if there are genuine new patterns worth documenting.
|
|
757
785
|
`;
|
|
758
786
|
}
|
|
@@ -764,11 +792,13 @@ Execute these steps:
|
|
|
764
792
|
2. Check if any new patterns or conventions were introduced
|
|
765
793
|
3. Read current guidelines: \`workflow/structure/backend/doc.md\`
|
|
766
794
|
4. If updates are needed:
|
|
767
|
-
- Update \`doc.md\` with new patterns or rules
|
|
768
|
-
-
|
|
769
|
-
- Update \`index.md\` with
|
|
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
|
|
770
798
|
5. Report what was updated (if anything)
|
|
771
799
|
|
|
800
|
+
**Language requirement**: All documentation must be written in **English**.
|
|
801
|
+
|
|
772
802
|
Only update if there are genuine new patterns worth documenting.
|
|
773
803
|
`;
|
|
774
804
|
}
|
|
@@ -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;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
|
|
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
|
|
|
@@ -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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"}
|