siesa-agents 2.1.17 → 2.1.19-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -7
- package/bin/install.js +9 -106
- package/bmad-core/agents/architect.md +0 -2
- package/bmad-core/agents/ux-expert.md +1 -1
- package/bmad-core/data/frontend-standards.md +15 -1
- package/bmad-core/data/technical-preferences-ux.md +423 -0
- package/bmad-core/tasks/create-doc.md +54 -10
- package/claude/commands/BMad/tasks/create-doc.md +50 -10
- package/claude/hooks/file-restriction-hook.py +51 -0
- package/claude/hooks/track-agent.py +67 -0
- package/claude/settings.local.json +37 -1
- package/package.json +2 -1
- package/resources/fonts/SiesaBT-Bold.otf +0 -0
- package/resources/fonts/SiesaBT-Light.otf +0 -0
- package/resources/fonts/SiesaBT-Regular.otf +0 -0
- package/resources/images/Siesa_Logosimbolo_Azul.svg +25 -0
- package/resources/images/Siesa_Logosimbolo_Blanco.svg +25 -0
- package/resources/images/Siesa_Simbolo_Azul.svg +15 -0
- package/resources/images/Siesa_Simbolo_Blanco.svg +15 -0
- package/bmad-core/data/architecture-patterns.md +0 -114
- package/bmad-core/data/technology-stack.md +0 -81
|
@@ -16,5 +16,41 @@
|
|
|
16
16
|
],
|
|
17
17
|
"deny": [],
|
|
18
18
|
"ask": []
|
|
19
|
-
}
|
|
19
|
+
},
|
|
20
|
+
"hooks": {
|
|
21
|
+
"UserPromptSubmit": [
|
|
22
|
+
{
|
|
23
|
+
"matcher": ".*",
|
|
24
|
+
"hooks": [
|
|
25
|
+
{
|
|
26
|
+
"type": "command",
|
|
27
|
+
"command": "python .claude/hooks/track-agent.py"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"PreToolUse": [
|
|
33
|
+
{
|
|
34
|
+
"matcher": "Write|Edit",
|
|
35
|
+
"hooks": [
|
|
36
|
+
{
|
|
37
|
+
"type": "command",
|
|
38
|
+
"command": "python .claude/hooks/file-restriction-hook.py"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"SessionEnd": [
|
|
44
|
+
{
|
|
45
|
+
"matcher": ".*",
|
|
46
|
+
"hooks": [
|
|
47
|
+
{
|
|
48
|
+
"type": "command",
|
|
49
|
+
"command": "python .claude/hooks/cleanup-agent.py"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"disableAllHooks": false
|
|
20
56
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "siesa-agents",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.19-dev.0",
|
|
4
4
|
"description": "Paquete para instalar y configurar agentes SIESA en tu proyecto",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"github/**/*",
|
|
26
26
|
"claude/**/*",
|
|
27
27
|
"bin/**/*",
|
|
28
|
+
"resources/**/*",
|
|
28
29
|
"README.md"
|
|
29
30
|
],
|
|
30
31
|
"engines": {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Siesa_Logosimbolos" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1999.86 500">
|
|
3
|
+
<!-- Generator: Adobe Illustrator 29.8.1, SVG Export Plug-In . SVG Version: 2.1.1 Build 2) -->
|
|
4
|
+
<defs>
|
|
5
|
+
<style>
|
|
6
|
+
.st0 {
|
|
7
|
+
fill: #0e79fd;
|
|
8
|
+
}
|
|
9
|
+
</style>
|
|
10
|
+
</defs>
|
|
11
|
+
<g>
|
|
12
|
+
<path class="st0" d="M812.95,404.07c-165.79,0-171.25-110.18-171.25-115.7h52.63s-.61,74.35,119.46,74.35h1.25c64.32,0,104-20.88,104-55.55v-1.67c0-27.57-23.81-38.43-95.65-47.2l-49.7-6.27c-76.85-9.61-123.63-33.41-123.63-90.64v-2.09c0-64.74,59.73-98.57,151.62-98.57h.84c161.01,0,161.4,108.26,161.4,108.26h-51.68s1.14-66.9-110.55-66.9h-.84c-61.82,0-98.16,20.47-98.16,55.13v1.67c0,27.15,22.14,43.44,91.89,52.21l47.2,5.85c89.8,10.86,130.74,37.17,130.74,87.71v2.09c0,64.74-64.74,97.32-158.72,97.32h-.85Z"/>
|
|
13
|
+
<path class="st0" d="M1560.56,404.07c-142.87,0-142.85-87.71-142.85-87.71h49.07c0,4.14,13.22,50.96,97.96,50.96h.84c53.88,0,80.61-12.11,80.61-36.76v-1.25c0-22.56-23.39-30.07-69.34-34.67l-55.13-5.01c-59.31-5.43-100.24-22.55-100.24-67.66v-1.67c0-47.62,48.87-74.77,131.15-74.77h.84c126.87,0,134.91,71.8,134.91,86.46h-50.12s2.54-49.7-84.79-49.7h-.84c-49.29,0-81.03,14.2-81.03,39.26v.84c0,22.97,27.57,30.91,73.93,35.5l57.22,5.43c65.16,6.68,93.98,26.73,93.98,64.74v2.09c0,48.87-45.95,73.93-135.33,73.93h-.84Z"/>
|
|
14
|
+
<g>
|
|
15
|
+
<rect class="st0" x="1014.63" y="168.99" width="47.02" height="230.9"/>
|
|
16
|
+
<rect class="st0" x="1012.55" y="65.58" width="51.18" height="51.18"/>
|
|
17
|
+
</g>
|
|
18
|
+
<path class="st0" d="M1984.7,190.65c-10.2-15.12-25.5-26.43-45.89-33.91-20.4-7.47-46.41-11.22-78.02-11.22-94.51,0-129.22,41.19-133.11,86.46h50.32c1.68-35.05,41.78-49.7,81.77-49.7,31.62,0,54.73,3.6,69.35,13.11,14.61,9.52,21.93,23.8,21.93,42.84v15.07c-108.47-.19-227.95-1.17-227.95,79.57,0,69.38,81.08,71.4,99.44,71.4,80.19,0,127.96-48.44,127.96-48.44l.04,43.8h49.47v-155.17c0-20.73-5.1-38.67-15.3-53.8h-.01ZM1935.49,326.23c-10.37,12.24-24.57,21.85-42.58,28.81-18.02,6.97-37.91,10.45-59.66,10.45-13.26,0-59.16-5.05-59.16-33.66,0-21.16,11.93-42.1,176.9-43.02-.54,13.38-5.71,25.85-15.5,37.41h0Z"/>
|
|
19
|
+
<path class="st0" d="M1390.14,272.08c-2.09-79.78-53.88-126.56-141.18-126.56h-.84c-90.22,0-144.52,47.2-144.52,126.14v2.09c0,81.45,55.97,130.32,149.53,130.32h.84c64.52,0,117.2-37.61,130.2-87.71l-48.33-.11c-8.77,26.73-35.5,48.15-81.87,48.15h-.84c-60.15,0-95.23-25.48-100.24-75.6h236.61c.71-4.3.63-16.71.63-16.71h0ZM1247.29,182.28h.84c53.21,0,85.14,26.08,91.91,72.32h-186.73c6.81-46.24,39.97-72.32,93.99-72.32h-.01Z"/>
|
|
20
|
+
</g>
|
|
21
|
+
<polygon class="st0" points="0 300 0 0 300 0 0 300"/>
|
|
22
|
+
<polygon class="st0" points="0 500 0 300 200 300 0 500"/>
|
|
23
|
+
<polygon class="st0" points="500 0 500 300 200 300 500 0"/>
|
|
24
|
+
<polygon class="st0" points="500 300 500 500 300 500 500 300"/>
|
|
25
|
+
</svg>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Siesa_Logosimbolos" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 2000.01 500">
|
|
3
|
+
<!-- Generator: Adobe Illustrator 29.8.1, SVG Export Plug-In . SVG Version: 2.1.1 Build 2) -->
|
|
4
|
+
<defs>
|
|
5
|
+
<style>
|
|
6
|
+
.st0 {
|
|
7
|
+
fill: #fff;
|
|
8
|
+
}
|
|
9
|
+
</style>
|
|
10
|
+
</defs>
|
|
11
|
+
<g>
|
|
12
|
+
<path class="st0" d="M813.02,404.07c-165.79,0-171.25-110.18-171.25-115.7h52.63s-.61,74.35,119.46,74.35h1.25c64.32,0,104-20.88,104-55.55v-1.67c0-27.57-23.81-38.43-95.65-47.2l-49.7-6.27c-76.85-9.61-123.63-33.41-123.63-90.64v-2.09c0-64.74,59.73-98.57,151.62-98.57h.84c161.01,0,161.4,108.26,161.4,108.26h-51.68s1.14-66.9-110.55-66.9h-.84c-61.82,0-98.16,20.47-98.16,55.13v1.67c0,27.15,22.14,43.44,91.89,52.21l47.2,5.85c89.8,10.86,130.74,37.17,130.74,87.71v2.09c0,64.74-64.74,97.32-158.72,97.32h-.85Z"/>
|
|
13
|
+
<path class="st0" d="M1560.63,404.07c-142.87,0-142.85-87.71-142.85-87.71h49.07c0,4.14,13.22,50.96,97.96,50.96h.84c53.88,0,80.61-12.11,80.61-36.76v-1.25c0-22.56-23.39-30.07-69.34-34.67l-55.13-5.01c-59.31-5.43-100.24-22.55-100.24-67.66v-1.67c0-47.62,48.87-74.77,131.15-74.77h.84c126.87,0,134.91,71.8,134.91,86.46h-50.12s2.54-49.7-84.79-49.7h-.84c-49.29,0-81.03,14.2-81.03,39.26v.84c0,22.97,27.57,30.91,73.93,35.5l57.22,5.43c65.16,6.68,93.98,26.73,93.98,64.74v2.09c0,48.87-45.95,73.93-135.33,73.93h-.84Z"/>
|
|
14
|
+
<g>
|
|
15
|
+
<rect class="st0" x="1014.7" y="168.99" width="47.02" height="230.9"/>
|
|
16
|
+
<rect class="st0" x="1012.62" y="65.58" width="51.18" height="51.18"/>
|
|
17
|
+
</g>
|
|
18
|
+
<path class="st0" d="M1984.77,190.65c-10.2-15.12-25.5-26.43-45.89-33.91-20.4-7.47-46.41-11.22-78.02-11.22-94.51,0-129.22,41.19-133.11,86.46h50.32c1.68-35.05,41.78-49.7,81.77-49.7,31.62,0,54.73,3.6,69.35,13.11,14.61,9.52,21.93,23.8,21.93,42.84v15.07c-108.47-.19-227.95-1.17-227.95,79.57,0,69.38,81.08,71.4,99.44,71.4,80.19,0,127.96-48.44,127.96-48.44l.04,43.8h49.47v-155.17c0-20.73-5.1-38.67-15.3-53.8h-.01ZM1935.56,326.23c-10.37,12.24-24.57,21.85-42.58,28.81-18.02,6.97-37.91,10.45-59.66,10.45-13.26,0-59.16-5.05-59.16-33.66,0-21.16,11.93-42.1,176.9-43.02-.54,13.38-5.71,25.85-15.5,37.41h0Z"/>
|
|
19
|
+
<path class="st0" d="M1390.21,272.08c-2.09-79.78-53.88-126.56-141.18-126.56h-.84c-90.22,0-144.52,47.2-144.52,126.14v2.09c0,81.45,55.97,130.32,149.53,130.32h.84c64.52,0,117.2-37.61,130.2-87.71l-48.33-.11c-8.77,26.73-35.5,48.15-81.87,48.15h-.84c-60.15,0-95.23-25.48-100.24-75.6h236.61c.71-4.3.63-16.71.63-16.71h0ZM1247.36,182.28h.84c53.21,0,85.14,26.08,91.91,72.32h-186.73c6.81-46.24,39.97-72.32,93.99-72.32h-.01Z"/>
|
|
20
|
+
</g>
|
|
21
|
+
<polygon class="st0" points=".07 300 .07 0 300.07 0 .07 300"/>
|
|
22
|
+
<polygon class="st0" points=".07 500 .07 300 200.07 300 .07 500"/>
|
|
23
|
+
<polygon class="st0" points="500.07 0 500.07 300 200.07 300 500.07 0"/>
|
|
24
|
+
<polygon class="st0" points="500.07 300 500.07 500 300.07 500 500.07 300"/>
|
|
25
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Siesa_Logosimbolos" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 500 500">
|
|
3
|
+
<!-- Generator: Adobe Illustrator 29.8.1, SVG Export Plug-In . SVG Version: 2.1.1 Build 2) -->
|
|
4
|
+
<defs>
|
|
5
|
+
<style>
|
|
6
|
+
.st0 {
|
|
7
|
+
fill: #0e79fd;
|
|
8
|
+
}
|
|
9
|
+
</style>
|
|
10
|
+
</defs>
|
|
11
|
+
<polygon class="st0" points=".05 300 .05 0 300.05 0 .05 300"/>
|
|
12
|
+
<polygon class="st0" points=".05 500 .05 300 200.05 300 .05 500"/>
|
|
13
|
+
<polygon class="st0" points="500.05 0 500.05 300 200.05 300 500.05 0"/>
|
|
14
|
+
<polygon class="st0" points="500.05 300 500.05 500 300.05 500 500.05 300"/>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="Siesa_Logosimbolos" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 500 500">
|
|
3
|
+
<!-- Generator: Adobe Illustrator 29.8.1, SVG Export Plug-In . SVG Version: 2.1.1 Build 2) -->
|
|
4
|
+
<defs>
|
|
5
|
+
<style>
|
|
6
|
+
.st0 {
|
|
7
|
+
fill: #fff;
|
|
8
|
+
}
|
|
9
|
+
</style>
|
|
10
|
+
</defs>
|
|
11
|
+
<polygon class="st0" points=".05 300 .05 0 300.05 0 .05 300"/>
|
|
12
|
+
<polygon class="st0" points=".05 500 .05 300 200.05 300 .05 500"/>
|
|
13
|
+
<polygon class="st0" points="500.05 0 500.05 300 200.05 300 500.05 0"/>
|
|
14
|
+
<polygon class="st0" points="500.05 300 500.05 500 300.05 500 500.05 300"/>
|
|
15
|
+
</svg>
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Architecture Patterns & Design Decisions
|
|
2
|
-
|
|
3
|
-
## Frontend Architecture
|
|
4
|
-
|
|
5
|
-
### Architecture Style
|
|
6
|
-
- **Clean Architecture** + **Domain-Driven Design (DDD)**
|
|
7
|
-
|
|
8
|
-
### Folder Structure
|
|
9
|
-
|
|
10
|
-
Next.js 15 App Router Structure with Clean Architecture + DDD:
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
├── app/ # Next.js App Router directory
|
|
14
|
-
│ ├── (dashboard)/ # Route groups for dashboard
|
|
15
|
-
│ ├── sales/ # Routes for sales module
|
|
16
|
-
│ │ ├── quotes/ # Quote management pages
|
|
17
|
-
│ │ └── invoices/ # Invoice pages
|
|
18
|
-
│ ├── inventory/ # Inventory routes
|
|
19
|
-
│ ├── globals.css # Global styles
|
|
20
|
-
│ ├── layout.tsx # Root layout component
|
|
21
|
-
│ ├── page.tsx # Home page
|
|
22
|
-
│ ├── loading.tsx # Global loading UI
|
|
23
|
-
│ └── not-found.tsx # 404 page
|
|
24
|
-
│
|
|
25
|
-
├── src/
|
|
26
|
-
│ ├── modules/ # Business modules following DDD
|
|
27
|
-
│ │ ├── sales/ # Sales module
|
|
28
|
-
│ │ │ ├── quotes/ # Quote domain
|
|
29
|
-
│ │ │ │ ├── cart/ # Shopping cart feature
|
|
30
|
-
│ │ │ │ │ ├── domain/
|
|
31
|
-
│ │ │ │ │ │ ├── entities/
|
|
32
|
-
│ │ │ │ │ │ ├── repositories/
|
|
33
|
-
│ │ │ │ │ │ ├── services/
|
|
34
|
-
│ │ │ │ │ │ └── types/
|
|
35
|
-
│ │ │ │ │ ├── application/
|
|
36
|
-
│ │ │ │ │ │ ├── use-cases/
|
|
37
|
-
│ │ │ │ │ │ ├── hooks/
|
|
38
|
-
│ │ │ │ │ │ └── store/
|
|
39
|
-
│ │ │ │ │ ├── infrastructure/
|
|
40
|
-
│ │ │ │ │ │ ├── repositories/
|
|
41
|
-
│ │ │ │ │ │ ├── api/
|
|
42
|
-
│ │ │ │ │ │ └── adapters/
|
|
43
|
-
│ │ │ │ │ └── presentation/
|
|
44
|
-
│ │ │ │ │ └── components/ # Only components, pages in app/
|
|
45
|
-
│ │ │ │ └── products/ # Products feature
|
|
46
|
-
│ │ │ └── billing/ # Billing domain
|
|
47
|
-
│ │ ├── inventory/ # Inventory module
|
|
48
|
-
│ │ └── users/ # User module
|
|
49
|
-
│ │
|
|
50
|
-
│ ├── shared/
|
|
51
|
-
│ │ ├── components/ # Reusable UI components
|
|
52
|
-
│ │ ├── hooks/ # Shared hooks
|
|
53
|
-
│ │ ├── utils/ # Utility functions
|
|
54
|
-
│ │ ├── types/ # Common TypeScript types
|
|
55
|
-
│ │ └── constants/ # App constants
|
|
56
|
-
│ │
|
|
57
|
-
│ ├── providers/ # React context providers
|
|
58
|
-
│ ├── store/ # Global Zustand stores
|
|
59
|
-
│ └── middleware.ts # Next.js middleware
|
|
60
|
-
│
|
|
61
|
-
├── lib/ # Next.js utilities and configurations
|
|
62
|
-
├── components/ # Global UI components (alternative to src/shared)
|
|
63
|
-
├── public/ # Static assets and PWA manifest
|
|
64
|
-
└── styles/ # Additional stylesheets
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Core Principles
|
|
68
|
-
|
|
69
|
-
#### Clean Architecture First
|
|
70
|
-
Strict separation of:
|
|
71
|
-
- **Domain layer** - Business entities, repositories interfaces, domain services, and types
|
|
72
|
-
- **Application layer** - Use cases, hooks, and state management (Zustand stores)
|
|
73
|
-
- **Infrastructure layer** - Repository implementations, API clients, and adapters
|
|
74
|
-
- **Presentation layer** - UI components (pages go in `app/`, components in `presentation/`)
|
|
75
|
-
|
|
76
|
-
#### Domain-Driven Design
|
|
77
|
-
Business logic drives architecture decisions. Organize by business modules and domains, not technical layers.
|
|
78
|
-
|
|
79
|
-
#### Component Composition
|
|
80
|
-
Build complex UIs from simple, reusable components.
|
|
81
|
-
|
|
82
|
-
#### Type Safety
|
|
83
|
-
Leverage TypeScript for compile-time safety and developer experience.
|
|
84
|
-
|
|
85
|
-
#### Performance by Design
|
|
86
|
-
- Lazy loading
|
|
87
|
-
- Memoization
|
|
88
|
-
- Bundle optimization
|
|
89
|
-
|
|
90
|
-
#### Accessibility as Standard
|
|
91
|
-
WCAG 2.1 AA compliance in all components.
|
|
92
|
-
|
|
93
|
-
#### Test-Driven Development
|
|
94
|
-
Unit tests for all use cases and components.
|
|
95
|
-
|
|
96
|
-
#### Progressive Web App
|
|
97
|
-
Offline-first approach with service workers.
|
|
98
|
-
|
|
99
|
-
#### Minimal and Functional
|
|
100
|
-
Only build what's explicitly requested, nothing more.
|
|
101
|
-
|
|
102
|
-
#### User-Centered Design
|
|
103
|
-
Start with user needs and work backward to implementation.
|
|
104
|
-
|
|
105
|
-
#### MCP Shadcn Available
|
|
106
|
-
Use MCP to install Shadcn components instead of creating manually.
|
|
107
|
-
|
|
108
|
-
### Framework Selection Rules
|
|
109
|
-
|
|
110
|
-
**Default**: Always use Next.js 15 with App Router unless explicitly told otherwise.
|
|
111
|
-
|
|
112
|
-
**Exceptions**: Only use pure React + Vite when user specifically mentions offline-first functionality or requests non-Next.js setup.
|
|
113
|
-
|
|
114
|
-
**Reasoning**: Next.js provides better developer experience, built-in optimization, and easier deployment while maintaining PWA capabilities.
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Technology Stack
|
|
2
|
-
|
|
3
|
-
## Frontend Stack
|
|
4
|
-
|
|
5
|
-
### Framework
|
|
6
|
-
- **Next.js 15** with TypeScript (App Router)
|
|
7
|
-
- Default framework unless explicitly told otherwise
|
|
8
|
-
- Built-in Turbopack/Webpack for building
|
|
9
|
-
- File-based routing with App Router
|
|
10
|
-
- Exception: Use pure React + Vite only when user specifically mentions offline-first functionality or requests non-Next.js setup
|
|
11
|
-
|
|
12
|
-
### State Management
|
|
13
|
-
- **Zustand**
|
|
14
|
-
|
|
15
|
-
### UI Framework & Styling
|
|
16
|
-
- **Shadcn/ui** (component library)
|
|
17
|
-
- **Radix UI** (primitives)
|
|
18
|
-
- **TailwindCSS v4** (styling)
|
|
19
|
-
|
|
20
|
-
### Architecture
|
|
21
|
-
- **Clean Architecture** + **Domain-Driven Design (DDD)**
|
|
22
|
-
|
|
23
|
-
### Testing
|
|
24
|
-
- **Vitest** (test runner)
|
|
25
|
-
- **React Testing Library** (component testing)
|
|
26
|
-
- **MSW** (Mock Service Worker - API mocking)
|
|
27
|
-
|
|
28
|
-
### Forms & Validation
|
|
29
|
-
- **React Hook Form** (form management)
|
|
30
|
-
- **Zod** (schema validation)
|
|
31
|
-
|
|
32
|
-
### HTTP Client
|
|
33
|
-
- **Axios** with interceptors
|
|
34
|
-
|
|
35
|
-
### Progressive Web App (PWA)
|
|
36
|
-
- **Next.js PWA plugin**
|
|
37
|
-
- **Workbox** (service worker library)
|
|
38
|
-
|
|
39
|
-
### Routing
|
|
40
|
-
- **Next.js App Router** (file-based routing)
|
|
41
|
-
|
|
42
|
-
## Core Principles
|
|
43
|
-
|
|
44
|
-
### Clean Architecture First
|
|
45
|
-
Strict separation of:
|
|
46
|
-
- Domain layer
|
|
47
|
-
- Application layer
|
|
48
|
-
- Infrastructure layer
|
|
49
|
-
- Presentation layer
|
|
50
|
-
|
|
51
|
-
### Domain-Driven Design
|
|
52
|
-
Business logic drives architecture decisions
|
|
53
|
-
|
|
54
|
-
### Component Composition
|
|
55
|
-
Build complex UIs from simple, reusable components
|
|
56
|
-
|
|
57
|
-
### Type Safety
|
|
58
|
-
Leverage TypeScript for compile-time safety and developer experience
|
|
59
|
-
|
|
60
|
-
### Performance by Design
|
|
61
|
-
- Lazy loading
|
|
62
|
-
- Memoization
|
|
63
|
-
- Bundle optimization
|
|
64
|
-
|
|
65
|
-
### Accessibility as Standard
|
|
66
|
-
WCAG 2.1 AA compliance in all components
|
|
67
|
-
|
|
68
|
-
### Test-Driven Development
|
|
69
|
-
Unit tests for all use cases and components
|
|
70
|
-
|
|
71
|
-
### Progressive Web App
|
|
72
|
-
Offline-first approach with service workers
|
|
73
|
-
|
|
74
|
-
### Minimal and Functional
|
|
75
|
-
Only build what's explicitly requested, nothing more
|
|
76
|
-
|
|
77
|
-
### User-Centered Design
|
|
78
|
-
Start with user needs and work backward to implementation
|
|
79
|
-
|
|
80
|
-
### MCP Shadcn Available
|
|
81
|
-
Use MCP to install Shadcn components instead of creating manually
|