siesa-agents 2.1.40 → 2.1.42
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 +147 -147
- package/bin/install.js +534 -534
- package/bin/prepare-publish.js +26 -26
- package/bin/restore-folders.js +26 -26
- package/bmad/_config/agent-manifest.csv +20 -20
- package/bmad/_config/agents/bmb-agent-builder.customize.yaml +41 -41
- package/bmad/_config/agents/bmb-module-builder.customize.yaml +41 -41
- package/bmad/_config/agents/bmb-workflow-builder.customize.yaml +41 -41
- package/bmad/_config/files-manifest.csv +469 -469
- package/bmad/_config/ides/claude-code.yaml +6 -6
- package/bmad/_config/manifest.yaml +14 -14
- package/bmad/_config/task-manifest.csv +6 -6
- package/bmad/_config/tool-manifest.csv +1 -1
- package/bmad/_config/workflow-manifest.csv +45 -45
- package/bmad/_memory/config.yaml +11 -11
- package/bmad/bmb/README.md +25 -25
- package/bmad/bmb/agents/agent-builder.md +57 -57
- package/bmad/bmb/agents/module-builder.md +60 -60
- package/bmad/bmb/agents/workflow-builder.md +56 -56
- package/bmad/bmb/config.yaml +12 -12
- package/bmad/bmb/docs/workflows/architecture.md +220 -220
- package/bmad/bmb/docs/workflows/common-workflow-tools.csv +18 -18
- package/bmad/bmb/docs/workflows/csv-data-file-standards.md +206 -206
- package/bmad/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -220
- package/bmad/bmb/docs/workflows/step-file-rules.md +469 -469
- package/bmad/bmb/docs/workflows/templates/step-01-init-continuable-template.md +241 -241
- package/bmad/bmb/docs/workflows/templates/step-1b-template.md +223 -223
- package/bmad/bmb/docs/workflows/templates/step-file.md +139 -139
- package/bmad/bmb/docs/workflows/templates/step-template.md +290 -290
- package/bmad/bmb/docs/workflows/templates/workflow-template.md +104 -104
- package/bmad/bmb/docs/workflows/templates/workflow.md +58 -58
- package/bmad/bmb/docs/workflows/terms.md +97 -97
- package/bmad/bmb/reference/agents/simple-examples/README.md +223 -223
- package/bmad/bmb/reference/readme.md +3 -3
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +17 -17
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +15 -15
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +27 -27
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -177
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +121 -121
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +165 -165
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +154 -154
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +183 -183
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +168 -168
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +195 -195
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -25
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -68
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -29
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -47
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -37
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -18
- package/bmad/bmb/reference/workflows/meal-prep-nutrition/workflow.md +59 -59
- package/bmad/bmb/workflows/agent/data/agent-compilation.md +273 -273
- package/bmad/bmb/workflows/agent/data/agent-menu-patterns.md +233 -233
- package/bmad/bmb/workflows/agent/data/agent-metadata.md +208 -208
- package/bmad/bmb/workflows/agent/data/brainstorm-context.md +146 -146
- package/bmad/bmb/workflows/agent/data/communication-presets.csv +61 -61
- package/bmad/bmb/workflows/agent/data/critical-actions.md +120 -120
- package/bmad/bmb/workflows/agent/data/expert-agent-architecture.md +236 -236
- package/bmad/bmb/workflows/agent/data/expert-agent-validation.md +173 -173
- package/bmad/bmb/workflows/agent/data/module-agent-validation.md +124 -124
- package/bmad/bmb/workflows/agent/data/persona-properties.md +266 -266
- package/bmad/bmb/workflows/agent/data/principles-crafting.md +292 -292
- package/bmad/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +16 -16
- package/bmad/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -68
- package/bmad/bmb/workflows/agent/data/simple-agent-architecture.md +204 -204
- package/bmad/bmb/workflows/agent/data/simple-agent-validation.md +132 -132
- package/bmad/bmb/workflows/agent/data/understanding-agent-types.md +222 -222
- package/bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md +126 -126
- package/bmad/bmb/workflows/agent/steps-c/step-02-discovery.md +168 -168
- package/bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md +294 -294
- package/bmad/bmb/workflows/agent/steps-c/step-04-persona.md +210 -210
- package/bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md +176 -176
- package/bmad/bmb/workflows/agent/steps-c/step-06-activation.md +275 -275
- package/bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md +185 -185
- package/bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -201
- package/bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -258
- package/bmad/bmb/workflows/agent/steps-c/step-08a-plan-traceability.md +203 -203
- package/bmad/bmb/workflows/agent/steps-c/step-08b-metadata-validation.md +135 -135
- package/bmad/bmb/workflows/agent/steps-c/step-08c-persona-validation.md +161 -161
- package/bmad/bmb/workflows/agent/steps-c/step-08d-menu-validation.md +158 -158
- package/bmad/bmb/workflows/agent/steps-c/step-08e-structure-validation.md +306 -306
- package/bmad/bmb/workflows/agent/steps-c/step-08f-sidecar-validation.md +462 -462
- package/bmad/bmb/workflows/agent/steps-c/step-09-celebrate.md +244 -244
- package/bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md +214 -214
- package/bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md +191 -191
- package/bmad/bmb/workflows/agent/steps-e/e-03a-validate-metadata.md +78 -78
- package/bmad/bmb/workflows/agent/steps-e/e-03b-validate-persona.md +76 -76
- package/bmad/bmb/workflows/agent/steps-e/e-03c-validate-menu.md +75 -75
- package/bmad/bmb/workflows/agent/steps-e/e-03d-validate-structure.md +75 -75
- package/bmad/bmb/workflows/agent/steps-e/e-03e-validate-sidecar.md +78 -78
- package/bmad/bmb/workflows/agent/steps-e/e-03f-validation-summary.md +119 -119
- package/bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md +122 -122
- package/bmad/bmb/workflows/agent/steps-e/e-05-persona.md +132 -132
- package/bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md +120 -120
- package/bmad/bmb/workflows/agent/steps-e/e-07-activation.md +122 -122
- package/bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +134 -134
- package/bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +117 -117
- package/bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md +120 -120
- package/bmad/bmb/workflows/agent/steps-e/e-09a-validate-metadata.md +70 -70
- package/bmad/bmb/workflows/agent/steps-e/e-09b-validate-persona.md +70 -70
- package/bmad/bmb/workflows/agent/steps-e/e-09c-validate-menu.md +69 -69
- package/bmad/bmb/workflows/agent/steps-e/e-09d-validate-structure.md +69 -69
- package/bmad/bmb/workflows/agent/steps-e/e-09e-validate-sidecar.md +70 -70
- package/bmad/bmb/workflows/agent/steps-e/e-09f-validation-summary.md +111 -111
- package/bmad/bmb/workflows/agent/steps-e/e-10-celebrate.md +150 -150
- package/bmad/bmb/workflows/agent/steps-v/v-01-load-review.md +128 -128
- package/bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +73 -73
- package/bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +72 -72
- package/bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +71 -71
- package/bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +71 -71
- package/bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +76 -76
- package/bmad/bmb/workflows/agent/steps-v/v-03-summary.md +100 -100
- package/bmad/bmb/workflows/agent/templates/agent-plan.template.md +5 -5
- package/bmad/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +76 -76
- package/bmad/bmb/workflows/agent/templates/simple-agent.template.md +71 -71
- package/bmad/bmb/workflows/agent/workflow.md +123 -123
- package/bmad/bmb/workflows/create-module/steps/step-01-init.md +156 -156
- package/bmad/bmb/workflows/create-module/steps/step-01b-continue.md +170 -170
- package/bmad/bmb/workflows/create-module/steps/step-02-concept.md +218 -218
- package/bmad/bmb/workflows/create-module/steps/step-03-components.md +268 -268
- package/bmad/bmb/workflows/create-module/steps/step-04-structure.md +229 -229
- package/bmad/bmb/workflows/create-module/steps/step-05-config.md +234 -234
- package/bmad/bmb/workflows/create-module/steps/step-06-agents.md +297 -297
- package/bmad/bmb/workflows/create-module/steps/step-07-workflows.md +229 -229
- package/bmad/bmb/workflows/create-module/steps/step-08-installer.md +187 -187
- package/bmad/bmb/workflows/create-module/steps/step-09-documentation.md +310 -310
- package/bmad/bmb/workflows/create-module/steps/step-10-roadmap.md +338 -338
- package/bmad/bmb/workflows/create-module/steps/step-11-validate.md +336 -336
- package/bmad/bmb/workflows/create-module/templates/agent.template.md +313 -313
- package/bmad/bmb/workflows/create-module/templates/installer.template.js +47 -47
- package/bmad/bmb/workflows/create-module/templates/module-plan.template.md +5 -5
- package/bmad/bmb/workflows/create-module/templates/module.template.yaml +53 -53
- package/bmad/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -23
- package/bmad/bmb/workflows/create-module/validation.md +126 -126
- package/bmad/bmb/workflows/create-module/workflow.md +56 -56
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/dietary-restrictions.csv +17 -17
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/macro-calculator.csv +15 -15
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/recipe-database.csv +27 -27
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01-init.md +177 -177
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01b-continue.md +150 -150
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-02-profile.md +164 -164
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-03-assessment.md +152 -152
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-04-strategy.md +182 -182
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-05-shopping.md +167 -167
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -194
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/assessment-section.md +25 -25
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/nutrition-plan.md +68 -68
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/prep-schedule-section.md +29 -29
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/profile-section.md +47 -47
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/shopping-section.md +37 -37
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/strategy-section.md +18 -18
- package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/workflow.md +58 -58
- package/bmad/bmb/workflows/create-workflow/steps/step-01-init.md +158 -158
- package/bmad/bmb/workflows/create-workflow/steps/step-02-gather.md +212 -212
- package/bmad/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +251 -251
- package/bmad/bmb/workflows/create-workflow/steps/step-04-plan-review.md +217 -217
- package/bmad/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +290 -290
- package/bmad/bmb/workflows/create-workflow/steps/step-06-design.md +272 -272
- package/bmad/bmb/workflows/create-workflow/steps/step-07-build.md +323 -323
- package/bmad/bmb/workflows/create-workflow/steps/step-08-review.md +285 -285
- package/bmad/bmb/workflows/create-workflow/steps/step-09-complete.md +188 -188
- package/bmad/bmb/workflows/create-workflow/workflow.md +59 -59
- package/bmad/bmb/workflows/edit-workflow/steps/step-01-analyze.md +217 -217
- package/bmad/bmb/workflows/edit-workflow/steps/step-02-discover.md +254 -254
- package/bmad/bmb/workflows/edit-workflow/steps/step-03-improve.md +218 -218
- package/bmad/bmb/workflows/edit-workflow/steps/step-04-validate.md +194 -194
- package/bmad/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +246 -246
- package/bmad/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -75
- package/bmad/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -68
- package/bmad/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -40
- package/bmad/bmb/workflows/edit-workflow/templates/validation-results.md +51 -51
- package/bmad/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -56
- package/bmad/bmb/workflows/edit-workflow/workflow.md +59 -59
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +153 -153
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +244 -244
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +275 -275
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +296 -296
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +265 -265
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +361 -361
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +259 -259
- package/bmad/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +302 -302
- package/bmad/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -140
- package/bmad/bmb/workflows/workflow-compliance-check/workflow.md +59 -59
- package/bmad/bmb/workflows-legacy/edit-module/README.md +171 -171
- package/bmad/bmb/workflows-legacy/edit-module/checklist.md +163 -163
- package/bmad/bmb/workflows-legacy/edit-module/instructions.md +340 -340
- package/bmad/bmb/workflows-legacy/edit-module/workflow.yaml +32 -32
- package/bmad/bmb/workflows-legacy/module-brief/README.md +264 -264
- package/bmad/bmb/workflows-legacy/module-brief/checklist.md +116 -116
- package/bmad/bmb/workflows-legacy/module-brief/instructions.md +268 -268
- package/bmad/bmb/workflows-legacy/module-brief/template.md +275 -275
- package/bmad/bmb/workflows-legacy/module-brief/workflow.yaml +34 -34
- package/bmad/bmm/agents/analyst.md +76 -76
- package/bmad/bmm/agents/architect.md +68 -68
- package/bmad/bmm/agents/dev.md +70 -70
- package/bmad/bmm/agents/pm.md +70 -70
- package/bmad/bmm/agents/quick-flow-solo-dev.md +68 -68
- package/bmad/bmm/agents/sm.md +71 -71
- package/bmad/bmm/agents/tea.md +71 -71
- package/bmad/bmm/agents/tech-writer.md +72 -72
- package/bmad/bmm/agents/ux-designer.md +68 -68
- package/bmad/bmm/config.yaml +18 -18
- package/bmad/bmm/data/README.md +29 -29
- package/bmad/bmm/data/documentation-standards.md +262 -262
- package/bmad/bmm/data/project-context-template.md +40 -40
- package/bmad/bmm/teams/default-party.csv +21 -21
- package/bmad/bmm/teams/team-fullstack.yaml +12 -12
- package/bmad/bmm/testarch/knowledge/api-request.md +303 -303
- package/bmad/bmm/testarch/knowledge/auth-session.md +356 -356
- package/bmad/bmm/testarch/knowledge/burn-in.md +273 -273
- package/bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -675
- package/bmad/bmm/testarch/knowledge/component-tdd.md +486 -486
- package/bmad/bmm/testarch/knowledge/contract-testing.md +957 -957
- package/bmad/bmm/testarch/knowledge/data-factories.md +500 -500
- package/bmad/bmm/testarch/knowledge/email-auth.md +721 -721
- package/bmad/bmm/testarch/knowledge/error-handling.md +725 -725
- package/bmad/bmm/testarch/knowledge/feature-flags.md +750 -750
- package/bmad/bmm/testarch/knowledge/file-utils.md +260 -260
- package/bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -401
- package/bmad/bmm/testarch/knowledge/fixtures-composition.md +382 -382
- package/bmad/bmm/testarch/knowledge/intercept-network-call.md +280 -280
- package/bmad/bmm/testarch/knowledge/log.md +294 -294
- package/bmad/bmm/testarch/knowledge/network-error-monitor.md +272 -272
- package/bmad/bmm/testarch/knowledge/network-first.md +486 -486
- package/bmad/bmm/testarch/knowledge/network-recorder.md +265 -265
- package/bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -670
- package/bmad/bmm/testarch/knowledge/overview.md +283 -283
- package/bmad/bmm/testarch/knowledge/playwright-config.md +730 -730
- package/bmad/bmm/testarch/knowledge/probability-impact.md +601 -601
- package/bmad/bmm/testarch/knowledge/recurse.md +296 -296
- package/bmad/bmm/testarch/knowledge/risk-governance.md +615 -615
- package/bmad/bmm/testarch/knowledge/selective-testing.md +732 -732
- package/bmad/bmm/testarch/knowledge/selector-resilience.md +527 -527
- package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -644
- package/bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -473
- package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -373
- package/bmad/bmm/testarch/knowledge/test-quality.md +664 -664
- package/bmad/bmm/testarch/knowledge/timing-debugging.md +372 -372
- package/bmad/bmm/testarch/knowledge/visual-debugging.md +524 -524
- package/bmad/bmm/testarch/tea-index.csv +33 -33
- package/bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -10
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +182 -182
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +166 -166
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +204 -204
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +207 -207
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +210 -210
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +224 -224
- package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +199 -199
- package/bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -58
- package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -137
- package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -229
- package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -238
- package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -206
- package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -234
- package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -443
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -182
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -237
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -200
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -249
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -259
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -177
- package/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -475
- package/bmad/bmm/workflows/1-analysis/research/research.template.md +29 -29
- package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -137
- package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -239
- package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -248
- package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -202
- package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -239
- package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -486
- package/bmad/bmm/workflows/1-analysis/research/workflow.md +173 -173
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -135
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -127
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -190
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -216
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -219
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -234
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -252
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -254
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -224
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -224
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -241
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +332 -248
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -237
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -264
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +228 -228
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -13
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +59 -43
- package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +12 -12
- package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +11 -11
- package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +10 -10
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +197 -197
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +166 -166
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +421 -421
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +290 -290
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +291 -291
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +271 -271
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +262 -262
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +258 -258
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +299 -299
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +270 -270
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +294 -294
- package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +186 -186
- package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.md +63 -63
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -190
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -178
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -179
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -139
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -252
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +133 -133
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -4
- package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -55
- package/bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -12
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/architecture-patterns.md +415 -415
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/backend-standards.md +811 -811
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/frontend-standards.md +375 -375
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/technical-preferences-ux.md +422 -422
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/technology-stack.md +235 -235
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +10 -10
- package/bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +6 -6
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +166 -166
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -164
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -224
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +342 -342
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +328 -328
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +368 -368
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -379
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +366 -366
- package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +352 -352
- package/bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +51 -51
- package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -259
- package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -233
- package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -272
- package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +145 -145
- package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -57
- package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -59
- package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -23
- package/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +224 -224
- package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +49 -49
- package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -279
- package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -206
- package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -58
- package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -358
- package/bmad/bmm/workflows/4-implementation/create-story/steps/step-01-determine-story.md +85 -85
- package/bmad/bmm/workflows/4-implementation/create-story/steps/step-02-analyze.md +67 -67
- package/bmad/bmm/workflows/4-implementation/create-story/steps/step-03-architecture.md +71 -71
- package/bmad/bmm/workflows/4-implementation/create-story/steps/step-04-web-research.md +58 -58
- package/bmad/bmm/workflows/4-implementation/create-story/steps/step-05-create-file.md +76 -76
- package/bmad/bmm/workflows/4-implementation/create-story/steps/step-06-finalize.md +66 -66
- package/bmad/bmm/workflows/4-implementation/create-story/template.md +49 -49
- package/bmad/bmm/workflows/4-implementation/create-story/workflow.md +58 -58
- package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml.bak +63 -63
- package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +85 -85
- package/bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +470 -470
- package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -25
- package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -1443
- package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +56 -56
- package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -33
- package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -225
- package/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -55
- package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -52
- package/bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -229
- package/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +34 -34
- package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md +189 -189
- package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md +144 -144
- package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md +128 -128
- package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-04-review.md +173 -173
- package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/tech-spec-template.md +74 -74
- package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.md +79 -79
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -156
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -120
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -113
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -113
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -106
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -140
- package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -52
- package/bmad/bmm/workflows/document-project/checklist.md +245 -245
- package/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -12
- package/bmad/bmm/workflows/document-project/instructions.md +221 -221
- package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -345
- package/bmad/bmm/workflows/document-project/templates/index-template.md +169 -169
- package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -103
- package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -160
- package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -135
- package/bmad/bmm/workflows/document-project/workflow.yaml +28 -28
- package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -298
- package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -31
- package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -1106
- package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -31
- package/bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -90
- package/bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -127
- package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -39
- package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -130
- package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +25 -25
- package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -43
- package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -141
- package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +25 -25
- package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -49
- package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -241
- package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +25 -25
- package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -38
- package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -133
- package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +25 -25
- package/bmad/bmm/workflows/generate-project-context/project-context-template.md +21 -21
- package/bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +218 -218
- package/bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -318
- package/bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -278
- package/bmad/bmm/workflows/generate-project-context/workflow.md +50 -50
- package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -364
- package/bmad/bmm/workflows/testarch/atdd/checklist.md +374 -374
- package/bmad/bmm/workflows/testarch/atdd/instructions.md +806 -806
- package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +45 -45
- package/bmad/bmm/workflows/testarch/automate/checklist.md +582 -582
- package/bmad/bmm/workflows/testarch/automate/instructions.md +1324 -1324
- package/bmad/bmm/workflows/testarch/automate/workflow.yaml +52 -52
- package/bmad/bmm/workflows/testarch/ci/checklist.md +248 -248
- package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -198
- package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -149
- package/bmad/bmm/workflows/testarch/ci/instructions.md +536 -536
- package/bmad/bmm/workflows/testarch/ci/workflow.yaml +45 -45
- package/bmad/bmm/workflows/testarch/framework/checklist.md +321 -321
- package/bmad/bmm/workflows/testarch/framework/instructions.md +481 -481
- package/bmad/bmm/workflows/testarch/framework/workflow.yaml +47 -47
- package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +407 -407
- package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -722
- package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -445
- package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -47
- package/bmad/bmm/workflows/testarch/test-design/checklist.md +235 -235
- package/bmad/bmm/workflows/testarch/test-design/instructions.md +788 -788
- package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +294 -294
- package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +54 -54
- package/bmad/bmm/workflows/testarch/test-review/checklist.md +472 -472
- package/bmad/bmm/workflows/testarch/test-review/instructions.md +628 -628
- package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +390 -390
- package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +46 -46
- package/bmad/bmm/workflows/testarch/trace/checklist.md +655 -655
- package/bmad/bmm/workflows/testarch/trace/instructions.md +1047 -1047
- package/bmad/bmm/workflows/testarch/trace/trace-template.md +675 -675
- package/bmad/bmm/workflows/testarch/trace/workflow.yaml +55 -55
- package/bmad/bmm/workflows/workflow-status/init/instructions.md +346 -346
- package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +28 -28
- package/bmad/bmm/workflows/workflow-status/instructions.md +395 -395
- package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -103
- package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -100
- package/bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -103
- package/bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -100
- package/bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -59
- package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -24
- package/bmad/bmm/workflows/workflow-status/workflow.yaml +30 -30
- package/bmad/cis/agents/brainstorming-coach.md +60 -60
- package/bmad/cis/agents/creative-problem-solver.md +60 -60
- package/bmad/cis/agents/design-thinking-coach.md +60 -60
- package/bmad/cis/agents/innovation-strategist.md +60 -60
- package/bmad/cis/agents/presentation-master.md +66 -66
- package/bmad/cis/agents/storyteller/storyteller.md +57 -57
- package/bmad/cis/config.yaml +11 -11
- package/bmad/cis/teams/creative-squad.yaml +7 -7
- package/bmad/cis/teams/default-party.csv +12 -12
- package/bmad/cis/workflows/README.md +139 -139
- package/bmad/cis/workflows/design-thinking/README.md +56 -56
- package/bmad/cis/workflows/design-thinking/design-methods.csv +30 -30
- package/bmad/cis/workflows/design-thinking/instructions.md +202 -202
- package/bmad/cis/workflows/design-thinking/template.md +111 -111
- package/bmad/cis/workflows/design-thinking/workflow.yaml +27 -27
- package/bmad/cis/workflows/innovation-strategy/README.md +56 -56
- package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +30 -30
- package/bmad/cis/workflows/innovation-strategy/instructions.md +276 -276
- package/bmad/cis/workflows/innovation-strategy/template.md +189 -189
- package/bmad/cis/workflows/innovation-strategy/workflow.yaml +27 -27
- package/bmad/cis/workflows/problem-solving/README.md +56 -56
- package/bmad/cis/workflows/problem-solving/instructions.md +252 -252
- package/bmad/cis/workflows/problem-solving/solving-methods.csv +30 -30
- package/bmad/cis/workflows/problem-solving/template.md +165 -165
- package/bmad/cis/workflows/problem-solving/workflow.yaml +27 -27
- package/bmad/cis/workflows/storytelling/README.md +58 -58
- package/bmad/cis/workflows/storytelling/instructions.md +293 -293
- package/bmad/cis/workflows/storytelling/story-types.csv +25 -25
- package/bmad/cis/workflows/storytelling/template.md +113 -113
- package/bmad/cis/workflows/storytelling/workflow.yaml +27 -27
- package/bmad/core/agents/bmad-master.md +57 -57
- package/bmad/core/config.yaml +9 -9
- package/bmad/core/resources/excalidraw/README.md +160 -160
- package/bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -127
- package/bmad/core/resources/excalidraw/library-loader.md +50 -50
- package/bmad/core/resources/excalidraw/validate-json-instructions.md +79 -79
- package/bmad/core/tasks/index-docs.xml +64 -64
- package/bmad/core/tasks/review-adversarial-general.xml +41 -41
- package/bmad/core/tasks/shard-doc.xml +108 -108
- package/bmad/core/tasks/validate-workflow.xml +88 -88
- package/bmad/core/tasks/workflow.xml +234 -234
- package/bmad/core/workflows/advanced-elicitation/methods.csv +51 -51
- package/bmad/core/workflows/advanced-elicitation/workflow.xml +116 -116
- package/bmad/core/workflows/brainstorming/brain-methods.csv +61 -61
- package/bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -197
- package/bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -122
- package/bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -225
- package/bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -237
- package/bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -209
- package/bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -264
- package/bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +340 -340
- package/bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -303
- package/bmad/core/workflows/brainstorming/template.md +15 -15
- package/bmad/core/workflows/brainstorming/workflow.md +51 -51
- package/bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +139 -139
- package/bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +204 -204
- package/bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -159
- package/bmad/core/workflows/party-mode/workflow.md +206 -206
- package/claude/hooks/file-restriction-hook.py +51 -51
- package/claude/hooks/track-agent.py +67 -67
- package/claude/settings.local.json +76 -76
- package/gemini/commands/BMad/agents/analyst.toml +6 -0
- package/gemini/commands/BMad/agents/architect.toml +6 -0
- package/gemini/commands/BMad/agents/bmad-master.toml +6 -0
- package/gemini/commands/BMad/agents/bmad-orchestrator.toml +6 -0
- package/gemini/commands/BMad/agents/dev.toml +6 -0
- package/gemini/commands/BMad/agents/pm.toml +6 -0
- package/gemini/commands/BMad/agents/po.toml +6 -0
- package/gemini/commands/BMad/agents/qa.toml +6 -0
- package/gemini/commands/BMad/agents/sm.toml +6 -0
- package/gemini/commands/BMad/agents/ux-expert.toml +6 -0
- package/gemini/commands/BMad/tasks/advanced-elicitation.toml +6 -0
- package/gemini/commands/BMad/tasks/apply-qa-fixes.toml +6 -0
- package/gemini/commands/BMad/tasks/brownfield-create-epic.toml +6 -0
- package/gemini/commands/BMad/tasks/brownfield-create-story.toml +6 -0
- package/gemini/commands/BMad/tasks/correct-course.toml +6 -0
- package/gemini/commands/BMad/tasks/create-brownfield-story.toml +6 -0
- package/gemini/commands/BMad/tasks/create-deep-research-prompt.toml +6 -0
- package/gemini/commands/BMad/tasks/create-doc.toml +6 -0
- package/gemini/commands/BMad/tasks/create-next-story.toml +6 -0
- package/gemini/commands/BMad/tasks/document-project.toml +6 -0
- package/gemini/commands/BMad/tasks/execute-checklist.toml +6 -0
- package/gemini/commands/BMad/tasks/facilitate-brainstorming-session.toml +6 -0
- package/gemini/commands/BMad/tasks/generate-ai-frontend-prompt.toml +6 -0
- package/gemini/commands/BMad/tasks/index-docs.toml +6 -0
- package/gemini/commands/BMad/tasks/kb-mode-interaction.toml +6 -0
- package/gemini/commands/BMad/tasks/nfr-assess.toml +6 -0
- package/gemini/commands/BMad/tasks/qa-gate.toml +6 -0
- package/gemini/commands/BMad/tasks/review-story.toml +6 -0
- package/gemini/commands/BMad/tasks/risk-profile.toml +6 -0
- package/gemini/commands/BMad/tasks/shard-doc.toml +6 -0
- package/gemini/commands/BMad/tasks/test-design.toml +6 -0
- package/gemini/commands/BMad/tasks/trace-requirements.toml +6 -0
- package/gemini/commands/BMad/tasks/validate-next-story.toml +6 -0
- package/github/workflows/publish.yml +150 -150
- package/index.js +9 -9
- package/mcp.json +14 -14
- package/package.json +41 -40
- package/resources/images/Siesa_Logosimbolo_Azul.svg +24 -24
- package/resources/images/Siesa_Logosimbolo_Blanco.svg +24 -24
- package/resources/images/Siesa_Simbolo_Azul.svg +14 -14
- package/resources/images/Siesa_Simbolo_Blanco.svg +14 -14
- package/vscode/mcp.json +15 -15
- package/vscode/settings.json +12 -12
|
@@ -1,415 +1,415 @@
|
|
|
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 16 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 16 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.
|
|
115
|
-
|
|
116
|
-
## Backend Architecture
|
|
117
|
-
|
|
118
|
-
### Architecture Style
|
|
119
|
-
- **Clean Architecture** + **Domain-Driven Design (DDD)** + **Microservices**
|
|
120
|
-
|
|
121
|
-
### Technology Stack
|
|
122
|
-
- **.NET 10** with **C# Minimal API**
|
|
123
|
-
- **Entity Framework Core** with **PostgreSQL**
|
|
124
|
-
- **UUID (Guid)** primary keys mandatory
|
|
125
|
-
- **linq2db**, **DynamicLinq**, **LinqKit** for advanced queries
|
|
126
|
-
- **FluentValidation** for validation
|
|
127
|
-
- **xUnit** for testing
|
|
128
|
-
- **Scalar** for API documentation (NO Swagger)
|
|
129
|
-
- **QuestPDF** for PDF generation
|
|
130
|
-
|
|
131
|
-
### Folder Structure
|
|
132
|
-
|
|
133
|
-
.NET Solution Structure with Clean Architecture + DDD + Microservices:
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
├── src/
|
|
137
|
-
│ ├── Services/ # Microservices
|
|
138
|
-
│ │ ├── Sales/ # Sales domain microservice
|
|
139
|
-
│ │ │ ├── Sales.API/ # Minimal API project
|
|
140
|
-
│ │ │ │ ├── Program.cs # Application entry point
|
|
141
|
-
│ │ │ │ ├── appsettings.json
|
|
142
|
-
│ │ │ │ ├── Endpoints/ # Minimal API endpoints
|
|
143
|
-
│ │ │ │ │ ├── UserEndpoints.cs
|
|
144
|
-
│ │ │ │ │ └── QuoteEndpoints.cs
|
|
145
|
-
│ │ │ │ ├── Filters/
|
|
146
|
-
│ │ │ │ ├── Middleware/
|
|
147
|
-
│ │ │ │ └── Sales.API.csproj
|
|
148
|
-
│ │ │ │
|
|
149
|
-
│ │ │ ├── Sales.Application/ # Application layer
|
|
150
|
-
│ │ │ │ ├── Quotes/ # Bounded context
|
|
151
|
-
│ │ │ │ │ ├── Commands/
|
|
152
|
-
│ │ │ │ │ │ ├── CreateQuoteCommand.cs
|
|
153
|
-
│ │ │ │ │ │ └── CreateQuoteCommandHandler.cs
|
|
154
|
-
│ │ │ │ │ ├── Queries/
|
|
155
|
-
│ │ │ │ │ │ ├── GetQuoteByIdQuery.cs
|
|
156
|
-
│ │ │ │ │ │ └── GetQuoteByIdQueryHandler.cs
|
|
157
|
-
│ │ │ │ │ ├── DTOs/
|
|
158
|
-
│ │ │ │ │ │ └── QuoteResponseDto.cs
|
|
159
|
-
│ │ │ │ │ ├── Validators/ # FluentValidation
|
|
160
|
-
│ │ │ │ │ │ └── CreateQuoteCommandValidator.cs
|
|
161
|
-
│ │ │ │ │ └── Interfaces/ # Repository interfaces
|
|
162
|
-
│ │ │ │ │ └── IQuoteRepository.cs
|
|
163
|
-
│ │ │ │ └── Sales.Application.csproj
|
|
164
|
-
│ │ │ │
|
|
165
|
-
│ │ │ ├── Sales.Domain/ # Domain layer
|
|
166
|
-
│ │ │ │ ├── Quotes/ # Bounded context
|
|
167
|
-
│ │ │ │ │ ├── Entities/
|
|
168
|
-
│ │ │ │ │ │ └── QuoteEntity.cs
|
|
169
|
-
│ │ │ │ │ ├── ValueObjects/
|
|
170
|
-
│ │ │ │ │ │ ├── QuoteNumber.cs
|
|
171
|
-
│ │ │ │ │ │ └── Money.cs
|
|
172
|
-
│ │ │ │ │ ├── Aggregates/
|
|
173
|
-
│ │ │ │ │ │ └── QuoteAggregate.cs
|
|
174
|
-
│ │ │ │ │ ├── Events/
|
|
175
|
-
│ │ │ │ │ │ └── QuoteCreatedEvent.cs
|
|
176
|
-
│ │ │ │ │ └── Services/ # Domain services
|
|
177
|
-
│ │ │ │ │ └── QuotePricingService.cs
|
|
178
|
-
│ │ │ │ └── Sales.Domain.csproj
|
|
179
|
-
│ │ │ │
|
|
180
|
-
│ │ │ └── Sales.Infrastructure/ # Infrastructure layer
|
|
181
|
-
│ │ │ ├── Data/
|
|
182
|
-
│ │ │ │ ├── ApplicationDbContext.cs
|
|
183
|
-
│ │ │ │ ├── Configurations/ # EF Core configurations
|
|
184
|
-
│ │ │ │ │ ├── QuoteConfiguration.cs
|
|
185
|
-
│ │ │ │ │ └── UserConfiguration.cs
|
|
186
|
-
│ │ │ │ └── Migrations/ # EF Core migrations
|
|
187
|
-
│ │ │ ├── Repositories/ # Repository implementations
|
|
188
|
-
│ │ │ │ └── QuoteRepository.cs
|
|
189
|
-
│ │ │ ├── Services/ # External service adapters
|
|
190
|
-
│ │ │ │ └── EmailService.cs
|
|
191
|
-
│ │ │ └── Sales.Infrastructure.csproj
|
|
192
|
-
│ │ │
|
|
193
|
-
│ │ ├── Inventory/ # Inventory microservice (independent DB)
|
|
194
|
-
│ │ │ ├── Inventory.API/
|
|
195
|
-
│ │ │ ├── Inventory.Application/
|
|
196
|
-
│ │ │ ├── Inventory.Domain/
|
|
197
|
-
│ │ │ └── Inventory.Infrastructure/
|
|
198
|
-
│ │ │ └── Data/ # Separate PostgreSQL DB
|
|
199
|
-
│ │ │ └── InventoryDbContext.cs
|
|
200
|
-
│ │ │
|
|
201
|
-
│ │ └── Users/ # Users microservice (independent DB)
|
|
202
|
-
│ │ ├── Users.API/
|
|
203
|
-
│ │ ├── Users.Application/
|
|
204
|
-
│ │ ├── Users.Domain/
|
|
205
|
-
│ │ └── Users.Infrastructure/
|
|
206
|
-
│ │ └── Data/ # Separate PostgreSQL DB
|
|
207
|
-
│ │ └── UsersDbContext.cs
|
|
208
|
-
│ │
|
|
209
|
-
│ └── Shared/ # Shared libraries
|
|
210
|
-
│ ├── Shared.Domain/ # Shared domain concepts
|
|
211
|
-
│ │ ├── Base/
|
|
212
|
-
│ │ │ ├── AggregateRoot.cs
|
|
213
|
-
│ │ │ ├── Entity.cs
|
|
214
|
-
│ │ │ ├── ValueObject.cs
|
|
215
|
-
│ │ │ └── DomainEvent.cs
|
|
216
|
-
│ │ ├── Interfaces/
|
|
217
|
-
│ │ │ ├── IRepository.cs
|
|
218
|
-
│ │ │ └── IUnitOfWork.cs
|
|
219
|
-
│ │ └── Shared.Domain.csproj
|
|
220
|
-
│ │
|
|
221
|
-
│ ├── Shared.Infrastructure/ # Shared infrastructure
|
|
222
|
-
│ │ ├── Data/
|
|
223
|
-
│ │ │ ├── BaseRepository.cs
|
|
224
|
-
│ │ │ └── UnitOfWork.cs
|
|
225
|
-
│ │ ├── Filters/
|
|
226
|
-
│ │ │ └── ValidationFilter.cs
|
|
227
|
-
│ │ ├── Middleware/
|
|
228
|
-
│ │ │ ├── ExceptionHandlingMiddleware.cs
|
|
229
|
-
│ │ │ └── LoggingMiddleware.cs
|
|
230
|
-
│ │ └── Shared.Infrastructure.csproj
|
|
231
|
-
│ │
|
|
232
|
-
│ └── Shared.Common/ # Common utilities
|
|
233
|
-
│ ├── Extensions/
|
|
234
|
-
│ │ ├── StringExtensions.cs
|
|
235
|
-
│ │ └── GuidExtensions.cs
|
|
236
|
-
│ ├── Helpers/
|
|
237
|
-
│ │ └── DateTimeHelper.cs
|
|
238
|
-
│ ├── Constants/
|
|
239
|
-
│ │ └── ErrorMessages.cs
|
|
240
|
-
│ └── Shared.Common.csproj
|
|
241
|
-
│
|
|
242
|
-
├── tests/ # Test projects
|
|
243
|
-
│ ├── Sales.UnitTests/
|
|
244
|
-
│ │ ├── Domain/
|
|
245
|
-
│ │ ├── Application/
|
|
246
|
-
│ │ └── Sales.UnitTests.csproj
|
|
247
|
-
│ ├── Sales.IntegrationTests/
|
|
248
|
-
│ │ ├── Repositories/
|
|
249
|
-
│ │ ├── API/
|
|
250
|
-
│ │ └── Sales.IntegrationTests.csproj
|
|
251
|
-
│ ├── Inventory.UnitTests/
|
|
252
|
-
│ └── Users.UnitTests/
|
|
253
|
-
│
|
|
254
|
-
├── docker/ # Docker configurations (Production only)
|
|
255
|
-
│ ├── docker-compose.yml
|
|
256
|
-
│ └── Dockerfiles/
|
|
257
|
-
│ ├── Sales.Dockerfile
|
|
258
|
-
│ ├── Inventory.Dockerfile
|
|
259
|
-
│ └── Users.Dockerfile
|
|
260
|
-
│
|
|
261
|
-
└── YourSolution.sln # Solution file
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### Microservices Communication Patterns
|
|
265
|
-
|
|
266
|
-
#### 1. Synchronous Communication (REST)
|
|
267
|
-
```csharp
|
|
268
|
-
// HTTP client for inter-service communication
|
|
269
|
-
public class InventoryServiceClient
|
|
270
|
-
{
|
|
271
|
-
private readonly HttpClient _httpClient;
|
|
272
|
-
|
|
273
|
-
public InventoryServiceClient(HttpClient httpClient)
|
|
274
|
-
{
|
|
275
|
-
_httpClient = httpClient;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
public async Task<ProductAvailabilityDto> CheckProductAvailabilityAsync(
|
|
279
|
-
Guid productId,
|
|
280
|
-
CancellationToken cancellationToken)
|
|
281
|
-
{
|
|
282
|
-
var response = await _httpClient.GetAsync(
|
|
283
|
-
$"/api/products/{productId}/availability",
|
|
284
|
-
cancellationToken);
|
|
285
|
-
response.EnsureSuccessStatusCode();
|
|
286
|
-
return await response.Content.ReadFromJsonAsync<ProductAvailabilityDto>(cancellationToken);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
#### 2. Asynchronous Communication (Message Broker)
|
|
292
|
-
- **RabbitMQ** or **Azure Service Bus** for event-driven architecture
|
|
293
|
-
- Each microservice publishes domain events
|
|
294
|
-
- Other services subscribe to relevant events
|
|
295
|
-
|
|
296
|
-
#### 3. gRPC for High-Performance Communication
|
|
297
|
-
- Use for internal high-throughput service-to-service calls
|
|
298
|
-
- Protocol Buffers for efficient serialization
|
|
299
|
-
|
|
300
|
-
### Database per Microservice Pattern
|
|
301
|
-
|
|
302
|
-
**Key Principles:**
|
|
303
|
-
- Each microservice has its own PostgreSQL database
|
|
304
|
-
- No direct database access between services
|
|
305
|
-
- Data consistency via eventual consistency and sagas
|
|
306
|
-
- Each database uses UUID (Guid) primary keys
|
|
307
|
-
|
|
308
|
-
**Connection String Pattern:**
|
|
309
|
-
```json
|
|
310
|
-
{
|
|
311
|
-
"ConnectionStrings": {
|
|
312
|
-
"SalesDb": "Host=localhost;Database=sales_db;Username=admin;Password=***",
|
|
313
|
-
"InventoryDb": "Host=localhost;Database=inventory_db;Username=admin;Password=***",
|
|
314
|
-
"UsersDb": "Host=localhost;Database=users_db;Username=admin;Password=***"
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### Core Backend Principles
|
|
320
|
-
|
|
321
|
-
#### Clean Architecture Layers
|
|
322
|
-
1. **Domain Layer** - Business entities, value objects, domain services (no dependencies)
|
|
323
|
-
2. **Application Layer** - Commands, queries, validators, interfaces (depends on Domain)
|
|
324
|
-
3. **Infrastructure Layer** - EF Core, repositories, external services (depends on Application)
|
|
325
|
-
4. **Presentation Layer** - Minimal API endpoints (depends on Application)
|
|
326
|
-
|
|
327
|
-
#### UUID Primary Keys
|
|
328
|
-
```csharp
|
|
329
|
-
public abstract class Entity
|
|
330
|
-
{
|
|
331
|
-
public Guid Id { get; protected set; } = Guid.NewGuid();
|
|
332
|
-
}
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
#### Entity Framework Core Configuration
|
|
336
|
-
```csharp
|
|
337
|
-
public class QuoteConfiguration : IEntityTypeConfiguration<QuoteEntity>
|
|
338
|
-
{
|
|
339
|
-
public void Configure(EntityTypeBuilder<QuoteEntity> builder)
|
|
340
|
-
{
|
|
341
|
-
builder.ToTable("Quotes");
|
|
342
|
-
builder.HasKey(q => q.Id);
|
|
343
|
-
|
|
344
|
-
builder.Property(q => q.Id)
|
|
345
|
-
.HasColumnType("uuid")
|
|
346
|
-
.IsRequired();
|
|
347
|
-
|
|
348
|
-
builder.OwnsOne(q => q.QuoteNumber, qn =>
|
|
349
|
-
{
|
|
350
|
-
qn.Property(n => n.Value)
|
|
351
|
-
.HasColumnName("QuoteNumber")
|
|
352
|
-
.HasMaxLength(50)
|
|
353
|
-
.IsRequired();
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
#### Test-Driven Development
|
|
360
|
-
- Write xUnit tests before or alongside implementation
|
|
361
|
-
- Use EF Core InMemory for fast unit tests
|
|
362
|
-
- Use PostgreSQL Test Containers for integration tests
|
|
363
|
-
- Mock external dependencies
|
|
364
|
-
|
|
365
|
-
#### FluentValidation Usage
|
|
366
|
-
```csharp
|
|
367
|
-
public class CreateQuoteCommandValidator : AbstractValidator<CreateQuoteCommand>
|
|
368
|
-
{
|
|
369
|
-
public CreateQuoteCommandValidator()
|
|
370
|
-
{
|
|
371
|
-
RuleFor(x => x.CustomerId)
|
|
372
|
-
.NotEmpty()
|
|
373
|
-
.WithMessage("Customer ID is required");
|
|
374
|
-
|
|
375
|
-
RuleFor(x => x.Items)
|
|
376
|
-
.NotEmpty()
|
|
377
|
-
.WithMessage("At least one item is required");
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
#### Scalar API Documentation
|
|
383
|
-
Register Scalar instead of Swagger in Program.cs:
|
|
384
|
-
```csharp
|
|
385
|
-
app.MapScalarApiReference(); // NOT app.UseSwagger()
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
## Summary
|
|
389
|
-
|
|
390
|
-
### Frontend
|
|
391
|
-
- **Framework**: Next.js 16 with TypeScript and App Router
|
|
392
|
-
- **Architecture**: Clean Architecture + DDD
|
|
393
|
-
- **State**: Zustand
|
|
394
|
-
- **UI**: shadcn/ui + Radix UI + TailwindCSS v4
|
|
395
|
-
- **Testing**: Vitest + React Testing Library
|
|
396
|
-
- **Validation**: Zod + React Hook Form
|
|
397
|
-
|
|
398
|
-
### Backend
|
|
399
|
-
- **Framework**: .NET 10 with C# Minimal API
|
|
400
|
-
- **Architecture**: Clean Architecture + DDD + Microservices
|
|
401
|
-
- **Database**: PostgreSQL (one per microservice)
|
|
402
|
-
- **ORM**: Entity Framework Core + linq2db + DynamicLinq + LinqKit
|
|
403
|
-
- **Validation**: FluentValidation
|
|
404
|
-
- **Testing**: xUnit + EF Core InMemory + PostgreSQL Test Containers
|
|
405
|
-
- **Documentation**: Scalar (NO Swagger)
|
|
406
|
-
- **Primary Keys**: UUID (Guid) mandatory
|
|
407
|
-
- **PDF Generation**: QuestPDF
|
|
408
|
-
|
|
409
|
-
### Key Principles
|
|
410
|
-
1. **Clean Architecture** - Strict layer separation in both frontend and backend
|
|
411
|
-
2. **Domain-Driven Design** - Business logic drives all decisions
|
|
412
|
-
3. **Test-Driven Development** - Tests before/alongside implementation
|
|
413
|
-
4. **Database per Microservice** - Complete isolation between services
|
|
414
|
-
5. **Type Safety** - TypeScript (frontend) and C# (backend) strong typing
|
|
415
|
-
6. **Docker for Production** - Local development without containers
|
|
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 16 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 16 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.
|
|
115
|
+
|
|
116
|
+
## Backend Architecture
|
|
117
|
+
|
|
118
|
+
### Architecture Style
|
|
119
|
+
- **Clean Architecture** + **Domain-Driven Design (DDD)** + **Microservices**
|
|
120
|
+
|
|
121
|
+
### Technology Stack
|
|
122
|
+
- **.NET 10** with **C# Minimal API**
|
|
123
|
+
- **Entity Framework Core** with **PostgreSQL**
|
|
124
|
+
- **UUID (Guid)** primary keys mandatory
|
|
125
|
+
- **linq2db**, **DynamicLinq**, **LinqKit** for advanced queries
|
|
126
|
+
- **FluentValidation** for validation
|
|
127
|
+
- **xUnit** for testing
|
|
128
|
+
- **Scalar** for API documentation (NO Swagger)
|
|
129
|
+
- **QuestPDF** for PDF generation
|
|
130
|
+
|
|
131
|
+
### Folder Structure
|
|
132
|
+
|
|
133
|
+
.NET Solution Structure with Clean Architecture + DDD + Microservices:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
├── src/
|
|
137
|
+
│ ├── Services/ # Microservices
|
|
138
|
+
│ │ ├── Sales/ # Sales domain microservice
|
|
139
|
+
│ │ │ ├── Sales.API/ # Minimal API project
|
|
140
|
+
│ │ │ │ ├── Program.cs # Application entry point
|
|
141
|
+
│ │ │ │ ├── appsettings.json
|
|
142
|
+
│ │ │ │ ├── Endpoints/ # Minimal API endpoints
|
|
143
|
+
│ │ │ │ │ ├── UserEndpoints.cs
|
|
144
|
+
│ │ │ │ │ └── QuoteEndpoints.cs
|
|
145
|
+
│ │ │ │ ├── Filters/
|
|
146
|
+
│ │ │ │ ├── Middleware/
|
|
147
|
+
│ │ │ │ └── Sales.API.csproj
|
|
148
|
+
│ │ │ │
|
|
149
|
+
│ │ │ ├── Sales.Application/ # Application layer
|
|
150
|
+
│ │ │ │ ├── Quotes/ # Bounded context
|
|
151
|
+
│ │ │ │ │ ├── Commands/
|
|
152
|
+
│ │ │ │ │ │ ├── CreateQuoteCommand.cs
|
|
153
|
+
│ │ │ │ │ │ └── CreateQuoteCommandHandler.cs
|
|
154
|
+
│ │ │ │ │ ├── Queries/
|
|
155
|
+
│ │ │ │ │ │ ├── GetQuoteByIdQuery.cs
|
|
156
|
+
│ │ │ │ │ │ └── GetQuoteByIdQueryHandler.cs
|
|
157
|
+
│ │ │ │ │ ├── DTOs/
|
|
158
|
+
│ │ │ │ │ │ └── QuoteResponseDto.cs
|
|
159
|
+
│ │ │ │ │ ├── Validators/ # FluentValidation
|
|
160
|
+
│ │ │ │ │ │ └── CreateQuoteCommandValidator.cs
|
|
161
|
+
│ │ │ │ │ └── Interfaces/ # Repository interfaces
|
|
162
|
+
│ │ │ │ │ └── IQuoteRepository.cs
|
|
163
|
+
│ │ │ │ └── Sales.Application.csproj
|
|
164
|
+
│ │ │ │
|
|
165
|
+
│ │ │ ├── Sales.Domain/ # Domain layer
|
|
166
|
+
│ │ │ │ ├── Quotes/ # Bounded context
|
|
167
|
+
│ │ │ │ │ ├── Entities/
|
|
168
|
+
│ │ │ │ │ │ └── QuoteEntity.cs
|
|
169
|
+
│ │ │ │ │ ├── ValueObjects/
|
|
170
|
+
│ │ │ │ │ │ ├── QuoteNumber.cs
|
|
171
|
+
│ │ │ │ │ │ └── Money.cs
|
|
172
|
+
│ │ │ │ │ ├── Aggregates/
|
|
173
|
+
│ │ │ │ │ │ └── QuoteAggregate.cs
|
|
174
|
+
│ │ │ │ │ ├── Events/
|
|
175
|
+
│ │ │ │ │ │ └── QuoteCreatedEvent.cs
|
|
176
|
+
│ │ │ │ │ └── Services/ # Domain services
|
|
177
|
+
│ │ │ │ │ └── QuotePricingService.cs
|
|
178
|
+
│ │ │ │ └── Sales.Domain.csproj
|
|
179
|
+
│ │ │ │
|
|
180
|
+
│ │ │ └── Sales.Infrastructure/ # Infrastructure layer
|
|
181
|
+
│ │ │ ├── Data/
|
|
182
|
+
│ │ │ │ ├── ApplicationDbContext.cs
|
|
183
|
+
│ │ │ │ ├── Configurations/ # EF Core configurations
|
|
184
|
+
│ │ │ │ │ ├── QuoteConfiguration.cs
|
|
185
|
+
│ │ │ │ │ └── UserConfiguration.cs
|
|
186
|
+
│ │ │ │ └── Migrations/ # EF Core migrations
|
|
187
|
+
│ │ │ ├── Repositories/ # Repository implementations
|
|
188
|
+
│ │ │ │ └── QuoteRepository.cs
|
|
189
|
+
│ │ │ ├── Services/ # External service adapters
|
|
190
|
+
│ │ │ │ └── EmailService.cs
|
|
191
|
+
│ │ │ └── Sales.Infrastructure.csproj
|
|
192
|
+
│ │ │
|
|
193
|
+
│ │ ├── Inventory/ # Inventory microservice (independent DB)
|
|
194
|
+
│ │ │ ├── Inventory.API/
|
|
195
|
+
│ │ │ ├── Inventory.Application/
|
|
196
|
+
│ │ │ ├── Inventory.Domain/
|
|
197
|
+
│ │ │ └── Inventory.Infrastructure/
|
|
198
|
+
│ │ │ └── Data/ # Separate PostgreSQL DB
|
|
199
|
+
│ │ │ └── InventoryDbContext.cs
|
|
200
|
+
│ │ │
|
|
201
|
+
│ │ └── Users/ # Users microservice (independent DB)
|
|
202
|
+
│ │ ├── Users.API/
|
|
203
|
+
│ │ ├── Users.Application/
|
|
204
|
+
│ │ ├── Users.Domain/
|
|
205
|
+
│ │ └── Users.Infrastructure/
|
|
206
|
+
│ │ └── Data/ # Separate PostgreSQL DB
|
|
207
|
+
│ │ └── UsersDbContext.cs
|
|
208
|
+
│ │
|
|
209
|
+
│ └── Shared/ # Shared libraries
|
|
210
|
+
│ ├── Shared.Domain/ # Shared domain concepts
|
|
211
|
+
│ │ ├── Base/
|
|
212
|
+
│ │ │ ├── AggregateRoot.cs
|
|
213
|
+
│ │ │ ├── Entity.cs
|
|
214
|
+
│ │ │ ├── ValueObject.cs
|
|
215
|
+
│ │ │ └── DomainEvent.cs
|
|
216
|
+
│ │ ├── Interfaces/
|
|
217
|
+
│ │ │ ├── IRepository.cs
|
|
218
|
+
│ │ │ └── IUnitOfWork.cs
|
|
219
|
+
│ │ └── Shared.Domain.csproj
|
|
220
|
+
│ │
|
|
221
|
+
│ ├── Shared.Infrastructure/ # Shared infrastructure
|
|
222
|
+
│ │ ├── Data/
|
|
223
|
+
│ │ │ ├── BaseRepository.cs
|
|
224
|
+
│ │ │ └── UnitOfWork.cs
|
|
225
|
+
│ │ ├── Filters/
|
|
226
|
+
│ │ │ └── ValidationFilter.cs
|
|
227
|
+
│ │ ├── Middleware/
|
|
228
|
+
│ │ │ ├── ExceptionHandlingMiddleware.cs
|
|
229
|
+
│ │ │ └── LoggingMiddleware.cs
|
|
230
|
+
│ │ └── Shared.Infrastructure.csproj
|
|
231
|
+
│ │
|
|
232
|
+
│ └── Shared.Common/ # Common utilities
|
|
233
|
+
│ ├── Extensions/
|
|
234
|
+
│ │ ├── StringExtensions.cs
|
|
235
|
+
│ │ └── GuidExtensions.cs
|
|
236
|
+
│ ├── Helpers/
|
|
237
|
+
│ │ └── DateTimeHelper.cs
|
|
238
|
+
│ ├── Constants/
|
|
239
|
+
│ │ └── ErrorMessages.cs
|
|
240
|
+
│ └── Shared.Common.csproj
|
|
241
|
+
│
|
|
242
|
+
├── tests/ # Test projects
|
|
243
|
+
│ ├── Sales.UnitTests/
|
|
244
|
+
│ │ ├── Domain/
|
|
245
|
+
│ │ ├── Application/
|
|
246
|
+
│ │ └── Sales.UnitTests.csproj
|
|
247
|
+
│ ├── Sales.IntegrationTests/
|
|
248
|
+
│ │ ├── Repositories/
|
|
249
|
+
│ │ ├── API/
|
|
250
|
+
│ │ └── Sales.IntegrationTests.csproj
|
|
251
|
+
│ ├── Inventory.UnitTests/
|
|
252
|
+
│ └── Users.UnitTests/
|
|
253
|
+
│
|
|
254
|
+
├── docker/ # Docker configurations (Production only)
|
|
255
|
+
│ ├── docker-compose.yml
|
|
256
|
+
│ └── Dockerfiles/
|
|
257
|
+
│ ├── Sales.Dockerfile
|
|
258
|
+
│ ├── Inventory.Dockerfile
|
|
259
|
+
│ └── Users.Dockerfile
|
|
260
|
+
│
|
|
261
|
+
└── YourSolution.sln # Solution file
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Microservices Communication Patterns
|
|
265
|
+
|
|
266
|
+
#### 1. Synchronous Communication (REST)
|
|
267
|
+
```csharp
|
|
268
|
+
// HTTP client for inter-service communication
|
|
269
|
+
public class InventoryServiceClient
|
|
270
|
+
{
|
|
271
|
+
private readonly HttpClient _httpClient;
|
|
272
|
+
|
|
273
|
+
public InventoryServiceClient(HttpClient httpClient)
|
|
274
|
+
{
|
|
275
|
+
_httpClient = httpClient;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
public async Task<ProductAvailabilityDto> CheckProductAvailabilityAsync(
|
|
279
|
+
Guid productId,
|
|
280
|
+
CancellationToken cancellationToken)
|
|
281
|
+
{
|
|
282
|
+
var response = await _httpClient.GetAsync(
|
|
283
|
+
$"/api/products/{productId}/availability",
|
|
284
|
+
cancellationToken);
|
|
285
|
+
response.EnsureSuccessStatusCode();
|
|
286
|
+
return await response.Content.ReadFromJsonAsync<ProductAvailabilityDto>(cancellationToken);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
#### 2. Asynchronous Communication (Message Broker)
|
|
292
|
+
- **RabbitMQ** or **Azure Service Bus** for event-driven architecture
|
|
293
|
+
- Each microservice publishes domain events
|
|
294
|
+
- Other services subscribe to relevant events
|
|
295
|
+
|
|
296
|
+
#### 3. gRPC for High-Performance Communication
|
|
297
|
+
- Use for internal high-throughput service-to-service calls
|
|
298
|
+
- Protocol Buffers for efficient serialization
|
|
299
|
+
|
|
300
|
+
### Database per Microservice Pattern
|
|
301
|
+
|
|
302
|
+
**Key Principles:**
|
|
303
|
+
- Each microservice has its own PostgreSQL database
|
|
304
|
+
- No direct database access between services
|
|
305
|
+
- Data consistency via eventual consistency and sagas
|
|
306
|
+
- Each database uses UUID (Guid) primary keys
|
|
307
|
+
|
|
308
|
+
**Connection String Pattern:**
|
|
309
|
+
```json
|
|
310
|
+
{
|
|
311
|
+
"ConnectionStrings": {
|
|
312
|
+
"SalesDb": "Host=localhost;Database=sales_db;Username=admin;Password=***",
|
|
313
|
+
"InventoryDb": "Host=localhost;Database=inventory_db;Username=admin;Password=***",
|
|
314
|
+
"UsersDb": "Host=localhost;Database=users_db;Username=admin;Password=***"
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Core Backend Principles
|
|
320
|
+
|
|
321
|
+
#### Clean Architecture Layers
|
|
322
|
+
1. **Domain Layer** - Business entities, value objects, domain services (no dependencies)
|
|
323
|
+
2. **Application Layer** - Commands, queries, validators, interfaces (depends on Domain)
|
|
324
|
+
3. **Infrastructure Layer** - EF Core, repositories, external services (depends on Application)
|
|
325
|
+
4. **Presentation Layer** - Minimal API endpoints (depends on Application)
|
|
326
|
+
|
|
327
|
+
#### UUID Primary Keys
|
|
328
|
+
```csharp
|
|
329
|
+
public abstract class Entity
|
|
330
|
+
{
|
|
331
|
+
public Guid Id { get; protected set; } = Guid.NewGuid();
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### Entity Framework Core Configuration
|
|
336
|
+
```csharp
|
|
337
|
+
public class QuoteConfiguration : IEntityTypeConfiguration<QuoteEntity>
|
|
338
|
+
{
|
|
339
|
+
public void Configure(EntityTypeBuilder<QuoteEntity> builder)
|
|
340
|
+
{
|
|
341
|
+
builder.ToTable("Quotes");
|
|
342
|
+
builder.HasKey(q => q.Id);
|
|
343
|
+
|
|
344
|
+
builder.Property(q => q.Id)
|
|
345
|
+
.HasColumnType("uuid")
|
|
346
|
+
.IsRequired();
|
|
347
|
+
|
|
348
|
+
builder.OwnsOne(q => q.QuoteNumber, qn =>
|
|
349
|
+
{
|
|
350
|
+
qn.Property(n => n.Value)
|
|
351
|
+
.HasColumnName("QuoteNumber")
|
|
352
|
+
.HasMaxLength(50)
|
|
353
|
+
.IsRequired();
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### Test-Driven Development
|
|
360
|
+
- Write xUnit tests before or alongside implementation
|
|
361
|
+
- Use EF Core InMemory for fast unit tests
|
|
362
|
+
- Use PostgreSQL Test Containers for integration tests
|
|
363
|
+
- Mock external dependencies
|
|
364
|
+
|
|
365
|
+
#### FluentValidation Usage
|
|
366
|
+
```csharp
|
|
367
|
+
public class CreateQuoteCommandValidator : AbstractValidator<CreateQuoteCommand>
|
|
368
|
+
{
|
|
369
|
+
public CreateQuoteCommandValidator()
|
|
370
|
+
{
|
|
371
|
+
RuleFor(x => x.CustomerId)
|
|
372
|
+
.NotEmpty()
|
|
373
|
+
.WithMessage("Customer ID is required");
|
|
374
|
+
|
|
375
|
+
RuleFor(x => x.Items)
|
|
376
|
+
.NotEmpty()
|
|
377
|
+
.WithMessage("At least one item is required");
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
#### Scalar API Documentation
|
|
383
|
+
Register Scalar instead of Swagger in Program.cs:
|
|
384
|
+
```csharp
|
|
385
|
+
app.MapScalarApiReference(); // NOT app.UseSwagger()
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Summary
|
|
389
|
+
|
|
390
|
+
### Frontend
|
|
391
|
+
- **Framework**: Next.js 16 with TypeScript and App Router
|
|
392
|
+
- **Architecture**: Clean Architecture + DDD
|
|
393
|
+
- **State**: Zustand
|
|
394
|
+
- **UI**: shadcn/ui + Radix UI + TailwindCSS v4
|
|
395
|
+
- **Testing**: Vitest + React Testing Library
|
|
396
|
+
- **Validation**: Zod + React Hook Form
|
|
397
|
+
|
|
398
|
+
### Backend
|
|
399
|
+
- **Framework**: .NET 10 with C# Minimal API
|
|
400
|
+
- **Architecture**: Clean Architecture + DDD + Microservices
|
|
401
|
+
- **Database**: PostgreSQL (one per microservice)
|
|
402
|
+
- **ORM**: Entity Framework Core + linq2db + DynamicLinq + LinqKit
|
|
403
|
+
- **Validation**: FluentValidation
|
|
404
|
+
- **Testing**: xUnit + EF Core InMemory + PostgreSQL Test Containers
|
|
405
|
+
- **Documentation**: Scalar (NO Swagger)
|
|
406
|
+
- **Primary Keys**: UUID (Guid) mandatory
|
|
407
|
+
- **PDF Generation**: QuestPDF
|
|
408
|
+
|
|
409
|
+
### Key Principles
|
|
410
|
+
1. **Clean Architecture** - Strict layer separation in both frontend and backend
|
|
411
|
+
2. **Domain-Driven Design** - Business logic drives all decisions
|
|
412
|
+
3. **Test-Driven Development** - Tests before/alongside implementation
|
|
413
|
+
4. **Database per Microservice** - Complete isolation between services
|
|
414
|
+
5. **Type Safety** - TypeScript (frontend) and C# (backend) strong typing
|
|
415
|
+
6. **Docker for Production** - Local development without containers
|