@polymorphism-tech/morph-spec 4.7.1 → 4.7.2

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.
Files changed (232) hide show
  1. package/.morph/.morphversion +5 -0
  2. package/.morph/analytics/threads-log.jsonl +5 -0
  3. package/.morph/config/config.json +8 -0
  4. package/.morph/framework/agents.json +1815 -0
  5. package/.morph/framework/hooks/README.md +205 -0
  6. package/.morph/framework/hooks/claude-code/notification/approval-reminder.js +54 -0
  7. package/.morph/framework/hooks/claude-code/post-tool-use/dispatch.js +83 -0
  8. package/.morph/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +42 -0
  9. package/.morph/framework/hooks/claude-code/pre-compact/save-morph-context.js +61 -0
  10. package/.morph/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +71 -0
  11. package/.morph/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +58 -0
  12. package/.morph/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +64 -0
  13. package/.morph/framework/hooks/claude-code/session-start/inject-morph-context.js +94 -0
  14. package/.morph/framework/hooks/claude-code/statusline.py +538 -0
  15. package/.morph/framework/hooks/claude-code/statusline.sh +7 -0
  16. package/.morph/framework/hooks/claude-code/stop/validate-completion.js +88 -0
  17. package/.morph/framework/hooks/claude-code/user-prompt/enrich-prompt.js +91 -0
  18. package/.morph/framework/hooks/git/commit-msg/conventional-commits.sh +33 -0
  19. package/.morph/framework/hooks/git/pre-commit/agents.sh +25 -0
  20. package/.morph/framework/hooks/git/pre-commit/orchestrator.sh +64 -0
  21. package/.morph/framework/hooks/git/pre-commit/specs.sh +50 -0
  22. package/.morph/framework/hooks/git/pre-push/run-tests.sh +44 -0
  23. package/.morph/framework/hooks/shared/hook-response.js +45 -0
  24. package/.morph/framework/hooks/shared/phase-utils.js +129 -0
  25. package/.morph/framework/hooks/shared/state-reader.js +138 -0
  26. package/.morph/framework/hooks/shared/stdin-reader.js +26 -0
  27. package/.morph/framework/standards/STANDARDS.json +933 -0
  28. package/.morph/framework/standards/ai-agents/blazor-ui.md +364 -0
  29. package/.morph/framework/standards/ai-agents/production.md +415 -0
  30. package/.morph/framework/standards/ai-agents/setup.md +418 -0
  31. package/.morph/framework/standards/ai-agents/team-orchestration.md +479 -0
  32. package/.morph/framework/standards/ai-agents/workflows.md +354 -0
  33. package/.morph/framework/standards/architecture/ddd/aggregates.md +120 -0
  34. package/.morph/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
  35. package/.morph/framework/standards/architecture/ddd/complexity-levels.md +108 -0
  36. package/.morph/framework/standards/architecture/ddd/entities.md +99 -0
  37. package/.morph/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
  38. package/.morph/framework/standards/architecture/ddd/value-objects.md +124 -0
  39. package/.morph/framework/standards/backend/api/minimal-api.md +494 -0
  40. package/.morph/framework/standards/backend/api/rest.md +492 -0
  41. package/.morph/framework/standards/backend/api/validation.md +88 -0
  42. package/.morph/framework/standards/backend/authentication/passkeys.md +428 -0
  43. package/.morph/framework/standards/backend/database/ef-core.md +199 -0
  44. package/.morph/framework/standards/backend/database/migrations.md +393 -0
  45. package/.morph/framework/standards/backend/database/postgresql/database.md +352 -0
  46. package/.morph/framework/standards/backend/database/repository-patterns.md +528 -0
  47. package/.morph/framework/standards/backend/database/vector-search-rag.md +541 -0
  48. package/.morph/framework/standards/backend/dotnet/async.md +366 -0
  49. package/.morph/framework/standards/backend/dotnet/core.md +117 -0
  50. package/.morph/framework/standards/backend/dotnet/di.md +439 -0
  51. package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +92 -0
  52. package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +216 -0
  53. package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +290 -0
  54. package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +350 -0
  55. package/.morph/framework/standards/backend/integrations/resend/resend-email.md +385 -0
  56. package/.morph/framework/standards/context/analytics.md +96 -0
  57. package/.morph/framework/standards/context/bundles.md +110 -0
  58. package/.morph/framework/standards/context/priming.md +78 -0
  59. package/.morph/framework/standards/core/architecture.md +185 -0
  60. package/.morph/framework/standards/core/coding.md +214 -0
  61. package/.morph/framework/standards/core/git-branching-strategy.md +403 -0
  62. package/.morph/framework/standards/core/git.md +185 -0
  63. package/.morph/framework/standards/core/testing.md +295 -0
  64. package/.morph/framework/standards/data/nosql/blob-storage.md +102 -0
  65. package/.morph/framework/standards/data/nosql/cache/redis.md +97 -0
  66. package/.morph/framework/standards/data/nosql/cosmos-db.md +118 -0
  67. package/.morph/framework/standards/data/vector-search/azure-ai-search.md +121 -0
  68. package/.morph/framework/standards/data/vector-search/rag-chunking.md +104 -0
  69. package/.morph/framework/standards/frontend/blazor/design-checklist.md +222 -0
  70. package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +595 -0
  71. package/.morph/framework/standards/frontend/blazor/fluent-ui.md +137 -0
  72. package/.morph/framework/standards/frontend/blazor/html-conversion.md +184 -0
  73. package/.morph/framework/standards/frontend/blazor/lifecycle.md +195 -0
  74. package/.morph/framework/standards/frontend/blazor/pitfalls.md +198 -0
  75. package/.morph/framework/standards/frontend/blazor/state.md +191 -0
  76. package/.morph/framework/standards/frontend/design-system/animations.md +151 -0
  77. package/.morph/framework/standards/frontend/design-system/naming.md +64 -0
  78. package/.morph/framework/standards/frontend/nextjs/app-router.md +123 -0
  79. package/.morph/framework/standards/frontend/nextjs/components.md +132 -0
  80. package/.morph/framework/standards/frontend/nextjs/data-fetching.md +126 -0
  81. package/.morph/framework/standards/frontend/nextjs/forms.md +128 -0
  82. package/.morph/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
  83. package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +215 -0
  84. package/.morph/framework/standards/frontend/nextjs/project-structure.md +102 -0
  85. package/.morph/framework/standards/frontend/nextjs/state-management.md +72 -0
  86. package/.morph/framework/standards/frontend/nextjs/testing.md +111 -0
  87. package/.morph/framework/standards/infrastructure/azure/azure.md +624 -0
  88. package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +422 -0
  89. package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +516 -0
  90. package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +520 -0
  91. package/.morph/framework/standards/infrastructure/azure/services/functions.md +486 -0
  92. package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +459 -0
  93. package/.morph/framework/standards/infrastructure/azure/services/storage.md +407 -0
  94. package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +196 -0
  95. package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +252 -0
  96. package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +176 -0
  97. package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +169 -0
  98. package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +184 -0
  99. package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +153 -0
  100. package/.morph/framework/standards/integration/api/graphql.md +91 -0
  101. package/.morph/framework/standards/integration/api/grpc.md +114 -0
  102. package/.morph/framework/standards/integration/api/rest-design.md +95 -0
  103. package/.morph/framework/standards/integration/event-driven/cqrs.md +101 -0
  104. package/.morph/framework/standards/integration/event-driven/event-sourcing.md +124 -0
  105. package/.morph/framework/standards/integration/event-driven/service-bus.md +95 -0
  106. package/.morph/framework/standards/integration/mcp/mcp-tools.md +384 -0
  107. package/.morph/framework/standards/observability/logging.md +131 -0
  108. package/.morph/framework/standards/observability/metrics.md +121 -0
  109. package/.morph/framework/standards/observability/monitoring.md +114 -0
  110. package/.morph/framework/standards/observability/tracing.md +132 -0
  111. package/.morph/framework/standards/workflows/parallel-execution.md +112 -0
  112. package/.morph/framework/standards/workflows/thread-management.md +113 -0
  113. package/.morph/framework/templates/.idea/morph-templates.xml +92 -0
  114. package/.morph/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  115. package/.morph/framework/templates/IDE-SNIPPETS.md +266 -0
  116. package/.morph/framework/templates/README.md +814 -0
  117. package/.morph/framework/templates/REGISTRY.json +1888 -0
  118. package/.morph/framework/templates/code/dotnet/backend/repository.cs +141 -0
  119. package/.morph/framework/templates/code/dotnet/backend/service.cs +139 -0
  120. package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +74 -0
  121. package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +25 -0
  122. package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +74 -0
  123. package/.morph/framework/templates/code/dotnet/contracts/README.md +74 -0
  124. package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -0
  125. package/.morph/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
  126. package/.morph/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
  127. package/.morph/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
  128. package/.morph/framework/templates/code/dotnet/database/migration.cs +83 -0
  129. package/.morph/framework/templates/code/dotnet/frontend/component.razor +239 -0
  130. package/.morph/framework/templates/code/dotnet/jobs/agent.cs +163 -0
  131. package/.morph/framework/templates/code/dotnet/jobs/job.cs +171 -0
  132. package/.morph/framework/templates/code/dotnet/test.cs +239 -0
  133. package/.morph/framework/templates/code/sql/rls-policy.sql +57 -0
  134. package/.morph/framework/templates/code/sql/supabase-migration.sql +100 -0
  135. package/.morph/framework/templates/code/sql/supabase-migration.template.sql +113 -0
  136. package/.morph/framework/templates/code/typescript/contracts.ts +168 -0
  137. package/.morph/framework/templates/context/CONTEXT-FEATURE.md +276 -0
  138. package/.morph/framework/templates/context/CONTEXT.md +181 -0
  139. package/.morph/framework/templates/docs/clarifications.md +253 -0
  140. package/.morph/framework/templates/docs/onboarding.md +123 -0
  141. package/.morph/framework/templates/docs/proposal.md +182 -0
  142. package/.morph/framework/templates/docs/schema-analysis.md +119 -0
  143. package/.morph/framework/templates/docs/spec.md +198 -0
  144. package/.morph/framework/templates/docs/ui-components.md +124 -0
  145. package/.morph/framework/templates/docs/ui-design-system.md +76 -0
  146. package/.morph/framework/templates/docs/ui-flows.md +167 -0
  147. package/.morph/framework/templates/docs/ui-mockups.md +98 -0
  148. package/.morph/framework/templates/docs/user-stories.md +34 -0
  149. package/.morph/framework/templates/examples/design-system-examples.md +357 -0
  150. package/.morph/framework/templates/examples/spec-examples.md +90 -0
  151. package/.morph/framework/templates/feature/decisions.md +187 -0
  152. package/.morph/framework/templates/feature/recap.md +146 -0
  153. package/.morph/framework/templates/feature/tasks.md +199 -0
  154. package/.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
  155. package/.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
  156. package/.morph/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
  157. package/.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
  158. package/.morph/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
  159. package/.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
  160. package/.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
  161. package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +82 -0
  162. package/.morph/framework/templates/infrastructure/azure/README.md +286 -0
  163. package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +63 -0
  164. package/.morph/framework/templates/infrastructure/azure/app-service.bicep +164 -0
  165. package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +49 -0
  166. package/.morph/framework/templates/infrastructure/azure/container-app.bicep +156 -0
  167. package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +426 -0
  168. package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +229 -0
  169. package/.morph/framework/templates/infrastructure/azure/deploy.sh +208 -0
  170. package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +91 -0
  171. package/.morph/framework/templates/infrastructure/azure/main.bicep +189 -0
  172. package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +29 -0
  173. package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +29 -0
  174. package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +29 -0
  175. package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +103 -0
  176. package/.morph/framework/templates/infrastructure/azure/storage.bicep +106 -0
  177. package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +58 -0
  178. package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -0
  179. package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -0
  180. package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -0
  181. package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +54 -0
  182. package/.morph/framework/templates/infrastructure/github/README.md +593 -0
  183. package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +22 -0
  184. package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -0
  185. package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -0
  186. package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +61 -0
  187. package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +31 -0
  188. package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -0
  189. package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -0
  190. package/.morph/framework/templates/integrations/asaas-client.cs +387 -0
  191. package/.morph/framework/templates/integrations/asaas-webhook.cs +351 -0
  192. package/.morph/framework/templates/integrations/azure-identity-config.cs +288 -0
  193. package/.morph/framework/templates/integrations/clerk-config.cs +258 -0
  194. package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -0
  195. package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -0
  196. package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +78 -0
  197. package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +97 -0
  198. package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +36 -0
  199. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -0
  200. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -0
  201. package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +90 -0
  202. package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +126 -0
  203. package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +43 -0
  204. package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +107 -0
  205. package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -0
  206. package/.morph/framework/templates/project-structure/dotnet-ddd.md +70 -0
  207. package/.morph/framework/templates/saas/subscription.cs +347 -0
  208. package/.morph/framework/templates/saas/tenant.cs +338 -0
  209. package/.morph/framework/templates/state.template.json +17 -0
  210. package/.morph/framework/templates/ui/FluentDesignTheme.cs +149 -0
  211. package/.morph/framework/templates/ui/MudTheme.cs +281 -0
  212. package/.morph/framework/templates/ui/design-system.css +226 -0
  213. package/.morph/logs/tool-failures.log +17 -0
  214. package/.morph/memory/pre-compact-2026-02-24T17-43-30-049Z.json +16 -0
  215. package/.morph/plans/eager-watching-bunny.md +105 -0
  216. package/.morph/plans/temporal-seeking-nebula.md +45 -0
  217. package/.morph/state.json +48 -0
  218. package/CLAUDE.md +1 -1
  219. package/README.md +2 -2
  220. package/bin/morph-spec.js +0 -9
  221. package/framework/CLAUDE.md +1 -1
  222. package/framework/hooks/README.md +10 -6
  223. package/framework/hooks/claude-code/notification/approval-reminder.js +2 -0
  224. package/framework/hooks/claude-code/post-tool-use/dispatch.js +1 -1
  225. package/framework/hooks/claude-code/stop/validate-completion.js +1 -1
  226. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +1 -1
  227. package/package.json +1 -1
  228. package/src/commands/project/init.js +15 -42
  229. package/src/commands/project/update.js +22 -37
  230. package/src/lib/installers/mcp-installer.js +18 -3
  231. package/src/utils/hooks-installer.js +5 -15
  232. package/src/commands/project/detect.js +0 -114
@@ -0,0 +1,933 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "standards": [
4
+ {
5
+ "id": "ai-agents-blazor-ui",
6
+ "name": "blazor ui",
7
+ "path": "ai-agents/blazor-ui.md",
8
+ "category": "ai-agents",
9
+ "subcategory": null,
10
+ "tags": [
11
+ "ai-agents"
12
+ ]
13
+ },
14
+ {
15
+ "id": "ai-agents-production",
16
+ "name": "production",
17
+ "path": "ai-agents/production.md",
18
+ "category": "ai-agents",
19
+ "subcategory": null,
20
+ "tags": [
21
+ "ai-agents"
22
+ ]
23
+ },
24
+ {
25
+ "id": "ai-agents-setup",
26
+ "name": "setup",
27
+ "path": "ai-agents/setup.md",
28
+ "category": "ai-agents",
29
+ "subcategory": null,
30
+ "tags": [
31
+ "ai-agents"
32
+ ]
33
+ },
34
+ {
35
+ "id": "ai-agents-team-orchestration",
36
+ "name": "team orchestration",
37
+ "path": "ai-agents/team-orchestration.md",
38
+ "category": "ai-agents",
39
+ "subcategory": null,
40
+ "tags": [
41
+ "ai-agents"
42
+ ]
43
+ },
44
+ {
45
+ "id": "ai-agents-workflows",
46
+ "name": "workflows",
47
+ "path": "ai-agents/workflows.md",
48
+ "category": "ai-agents",
49
+ "subcategory": null,
50
+ "tags": [
51
+ "ai-agents"
52
+ ]
53
+ },
54
+ {
55
+ "id": "architecture-ddd-aggregates",
56
+ "name": "aggregates",
57
+ "path": "architecture/ddd/aggregates.md",
58
+ "category": "architecture",
59
+ "subcategory": "ddd",
60
+ "tags": [
61
+ "architecture",
62
+ "ddd"
63
+ ]
64
+ },
65
+ {
66
+ "id": "architecture-ddd-bounded-contexts",
67
+ "name": "bounded contexts",
68
+ "path": "architecture/ddd/bounded-contexts.md",
69
+ "category": "architecture",
70
+ "subcategory": "ddd",
71
+ "tags": [
72
+ "architecture",
73
+ "ddd"
74
+ ]
75
+ },
76
+ {
77
+ "id": "architecture-ddd-complexity-levels",
78
+ "name": "complexity levels",
79
+ "path": "architecture/ddd/complexity-levels.md",
80
+ "category": "architecture",
81
+ "subcategory": "ddd",
82
+ "tags": [
83
+ "architecture",
84
+ "ddd"
85
+ ]
86
+ },
87
+ {
88
+ "id": "architecture-ddd-entities",
89
+ "name": "entities",
90
+ "path": "architecture/ddd/entities.md",
91
+ "category": "architecture",
92
+ "subcategory": "ddd",
93
+ "tags": [
94
+ "architecture",
95
+ "ddd"
96
+ ]
97
+ },
98
+ {
99
+ "id": "architecture-ddd-ubiquitous-language",
100
+ "name": "ubiquitous language",
101
+ "path": "architecture/ddd/ubiquitous-language.md",
102
+ "category": "architecture",
103
+ "subcategory": "ddd",
104
+ "tags": [
105
+ "architecture",
106
+ "ddd"
107
+ ]
108
+ },
109
+ {
110
+ "id": "architecture-ddd-value-objects",
111
+ "name": "value objects",
112
+ "path": "architecture/ddd/value-objects.md",
113
+ "category": "architecture",
114
+ "subcategory": "ddd",
115
+ "tags": [
116
+ "architecture",
117
+ "ddd"
118
+ ]
119
+ },
120
+ {
121
+ "id": "backend-api-minimal-api",
122
+ "name": "minimal api",
123
+ "path": "backend/api/minimal-api.md",
124
+ "category": "backend",
125
+ "subcategory": "api",
126
+ "tags": [
127
+ "backend",
128
+ "api"
129
+ ]
130
+ },
131
+ {
132
+ "id": "backend-api-rest",
133
+ "name": "rest",
134
+ "path": "backend/api/rest.md",
135
+ "category": "backend",
136
+ "subcategory": "api",
137
+ "tags": [
138
+ "backend",
139
+ "api"
140
+ ]
141
+ },
142
+ {
143
+ "id": "backend-api-validation",
144
+ "name": "validation",
145
+ "path": "backend/api/validation.md",
146
+ "category": "backend",
147
+ "subcategory": "api",
148
+ "tags": [
149
+ "backend",
150
+ "api"
151
+ ]
152
+ },
153
+ {
154
+ "id": "backend-authentication-passkeys",
155
+ "name": "passkeys",
156
+ "path": "backend/authentication/passkeys.md",
157
+ "category": "backend",
158
+ "subcategory": "authentication",
159
+ "tags": [
160
+ "backend",
161
+ "authentication"
162
+ ]
163
+ },
164
+ {
165
+ "id": "backend-database-ef-core",
166
+ "name": "ef core",
167
+ "path": "backend/database/ef-core.md",
168
+ "category": "backend",
169
+ "subcategory": "database",
170
+ "tags": [
171
+ "backend",
172
+ "database"
173
+ ]
174
+ },
175
+ {
176
+ "id": "backend-database-migrations",
177
+ "name": "migrations",
178
+ "path": "backend/database/migrations.md",
179
+ "category": "backend",
180
+ "subcategory": "database",
181
+ "tags": [
182
+ "backend",
183
+ "database"
184
+ ]
185
+ },
186
+ {
187
+ "id": "backend-database-postgresql-database",
188
+ "name": "database",
189
+ "path": "backend/database/postgresql/database.md",
190
+ "category": "backend",
191
+ "subcategory": "database",
192
+ "tags": [
193
+ "backend",
194
+ "database",
195
+ "postgresql"
196
+ ]
197
+ },
198
+ {
199
+ "id": "backend-database-repository-patterns",
200
+ "name": "repository patterns",
201
+ "path": "backend/database/repository-patterns.md",
202
+ "category": "backend",
203
+ "subcategory": "database",
204
+ "tags": [
205
+ "backend",
206
+ "database"
207
+ ]
208
+ },
209
+ {
210
+ "id": "backend-database-vector-search-rag",
211
+ "name": "vector search rag",
212
+ "path": "backend/database/vector-search-rag.md",
213
+ "category": "backend",
214
+ "subcategory": "database",
215
+ "tags": [
216
+ "backend",
217
+ "database"
218
+ ]
219
+ },
220
+ {
221
+ "id": "backend-dotnet-async",
222
+ "name": "async",
223
+ "path": "backend/dotnet/async.md",
224
+ "category": "backend",
225
+ "subcategory": "dotnet",
226
+ "tags": [
227
+ "backend",
228
+ "dotnet"
229
+ ]
230
+ },
231
+ {
232
+ "id": "backend-dotnet-core",
233
+ "name": "core",
234
+ "path": "backend/dotnet/core.md",
235
+ "category": "backend",
236
+ "subcategory": "dotnet",
237
+ "tags": [
238
+ "backend",
239
+ "dotnet"
240
+ ]
241
+ },
242
+ {
243
+ "id": "backend-dotnet-di",
244
+ "name": "di",
245
+ "path": "backend/dotnet/di.md",
246
+ "category": "backend",
247
+ "subcategory": "dotnet",
248
+ "tags": [
249
+ "backend",
250
+ "dotnet"
251
+ ]
252
+ },
253
+ {
254
+ "id": "backend-dotnet-program-cs-checklist",
255
+ "name": "program cs checklist",
256
+ "path": "backend/dotnet/program-cs-checklist.md",
257
+ "category": "backend",
258
+ "subcategory": "dotnet",
259
+ "tags": [
260
+ "backend",
261
+ "dotnet"
262
+ ]
263
+ },
264
+ {
265
+ "id": "backend-integrations-asaas-asaas-api",
266
+ "name": "asaas api",
267
+ "path": "backend/integrations/asaas/asaas-api.md",
268
+ "category": "backend",
269
+ "subcategory": "integrations",
270
+ "tags": [
271
+ "backend",
272
+ "integrations",
273
+ "asaas"
274
+ ]
275
+ },
276
+ {
277
+ "id": "backend-integrations-clerk-clerk-auth",
278
+ "name": "clerk auth",
279
+ "path": "backend/integrations/clerk/clerk-auth.md",
280
+ "category": "backend",
281
+ "subcategory": "integrations",
282
+ "tags": [
283
+ "backend",
284
+ "integrations",
285
+ "clerk"
286
+ ]
287
+ },
288
+ {
289
+ "id": "backend-integrations-hangfire-hangfire-jobs",
290
+ "name": "hangfire jobs",
291
+ "path": "backend/integrations/hangfire/hangfire-jobs.md",
292
+ "category": "backend",
293
+ "subcategory": "integrations",
294
+ "tags": [
295
+ "backend",
296
+ "integrations",
297
+ "hangfire"
298
+ ]
299
+ },
300
+ {
301
+ "id": "backend-integrations-resend-resend-email",
302
+ "name": "resend email",
303
+ "path": "backend/integrations/resend/resend-email.md",
304
+ "category": "backend",
305
+ "subcategory": "integrations",
306
+ "tags": [
307
+ "backend",
308
+ "integrations",
309
+ "resend"
310
+ ]
311
+ },
312
+ {
313
+ "id": "context-analytics",
314
+ "name": "analytics",
315
+ "path": "context/analytics.md",
316
+ "category": "context",
317
+ "subcategory": null,
318
+ "tags": [
319
+ "context"
320
+ ]
321
+ },
322
+ {
323
+ "id": "context-bundles",
324
+ "name": "bundles",
325
+ "path": "context/bundles.md",
326
+ "category": "context",
327
+ "subcategory": null,
328
+ "tags": [
329
+ "context"
330
+ ]
331
+ },
332
+ {
333
+ "id": "context-priming",
334
+ "name": "priming",
335
+ "path": "context/priming.md",
336
+ "category": "context",
337
+ "subcategory": null,
338
+ "tags": [
339
+ "context"
340
+ ]
341
+ },
342
+ {
343
+ "id": "core-architecture",
344
+ "name": "architecture",
345
+ "path": "core/architecture.md",
346
+ "category": "core",
347
+ "subcategory": null,
348
+ "tags": [
349
+ "core"
350
+ ]
351
+ },
352
+ {
353
+ "id": "core-coding",
354
+ "name": "coding",
355
+ "path": "core/coding.md",
356
+ "category": "core",
357
+ "subcategory": null,
358
+ "tags": [
359
+ "core"
360
+ ]
361
+ },
362
+ {
363
+ "id": "core-git-branching-strategy",
364
+ "name": "git branching strategy",
365
+ "path": "core/git-branching-strategy.md",
366
+ "category": "core",
367
+ "subcategory": null,
368
+ "tags": [
369
+ "core"
370
+ ]
371
+ },
372
+ {
373
+ "id": "core-git",
374
+ "name": "git",
375
+ "path": "core/git.md",
376
+ "category": "core",
377
+ "subcategory": null,
378
+ "tags": [
379
+ "core"
380
+ ]
381
+ },
382
+ {
383
+ "id": "core-testing",
384
+ "name": "testing",
385
+ "path": "core/testing.md",
386
+ "category": "core",
387
+ "subcategory": null,
388
+ "tags": [
389
+ "core"
390
+ ]
391
+ },
392
+ {
393
+ "id": "data-nosql-blob-storage",
394
+ "name": "blob storage",
395
+ "path": "data/nosql/blob-storage.md",
396
+ "category": "data",
397
+ "subcategory": "nosql",
398
+ "tags": [
399
+ "data",
400
+ "nosql"
401
+ ]
402
+ },
403
+ {
404
+ "id": "data-nosql-cache-redis",
405
+ "name": "redis",
406
+ "path": "data/nosql/cache/redis.md",
407
+ "category": "data",
408
+ "subcategory": "nosql",
409
+ "tags": [
410
+ "data",
411
+ "nosql",
412
+ "cache"
413
+ ]
414
+ },
415
+ {
416
+ "id": "data-nosql-cosmos-db",
417
+ "name": "cosmos db",
418
+ "path": "data/nosql/cosmos-db.md",
419
+ "category": "data",
420
+ "subcategory": "nosql",
421
+ "tags": [
422
+ "data",
423
+ "nosql"
424
+ ]
425
+ },
426
+ {
427
+ "id": "data-vector-search-azure-ai-search",
428
+ "name": "azure ai search",
429
+ "path": "data/vector-search/azure-ai-search.md",
430
+ "category": "data",
431
+ "subcategory": "vector-search",
432
+ "tags": [
433
+ "data",
434
+ "vector-search"
435
+ ]
436
+ },
437
+ {
438
+ "id": "data-vector-search-rag-chunking",
439
+ "name": "rag chunking",
440
+ "path": "data/vector-search/rag-chunking.md",
441
+ "category": "data",
442
+ "subcategory": "vector-search",
443
+ "tags": [
444
+ "data",
445
+ "vector-search"
446
+ ]
447
+ },
448
+ {
449
+ "id": "frontend-blazor-design-checklist",
450
+ "name": "design checklist",
451
+ "path": "frontend/blazor/design-checklist.md",
452
+ "category": "frontend",
453
+ "subcategory": "blazor",
454
+ "tags": [
455
+ "frontend",
456
+ "blazor"
457
+ ]
458
+ },
459
+ {
460
+ "id": "frontend-blazor-fluent-ui-setup",
461
+ "name": "fluent ui setup",
462
+ "path": "frontend/blazor/fluent-ui-setup.md",
463
+ "category": "frontend",
464
+ "subcategory": "blazor",
465
+ "tags": [
466
+ "frontend",
467
+ "blazor"
468
+ ]
469
+ },
470
+ {
471
+ "id": "frontend-blazor-fluent-ui",
472
+ "name": "fluent ui",
473
+ "path": "frontend/blazor/fluent-ui.md",
474
+ "category": "frontend",
475
+ "subcategory": "blazor",
476
+ "tags": [
477
+ "frontend",
478
+ "blazor"
479
+ ]
480
+ },
481
+ {
482
+ "id": "frontend-blazor-html-conversion",
483
+ "name": "html conversion",
484
+ "path": "frontend/blazor/html-conversion.md",
485
+ "category": "frontend",
486
+ "subcategory": "blazor",
487
+ "tags": [
488
+ "frontend",
489
+ "blazor"
490
+ ]
491
+ },
492
+ {
493
+ "id": "frontend-blazor-lifecycle",
494
+ "name": "lifecycle",
495
+ "path": "frontend/blazor/lifecycle.md",
496
+ "category": "frontend",
497
+ "subcategory": "blazor",
498
+ "tags": [
499
+ "frontend",
500
+ "blazor"
501
+ ]
502
+ },
503
+ {
504
+ "id": "frontend-blazor-pitfalls",
505
+ "name": "pitfalls",
506
+ "path": "frontend/blazor/pitfalls.md",
507
+ "category": "frontend",
508
+ "subcategory": "blazor",
509
+ "tags": [
510
+ "frontend",
511
+ "blazor"
512
+ ]
513
+ },
514
+ {
515
+ "id": "frontend-blazor-state",
516
+ "name": "state",
517
+ "path": "frontend/blazor/state.md",
518
+ "category": "frontend",
519
+ "subcategory": "blazor",
520
+ "tags": [
521
+ "frontend",
522
+ "blazor"
523
+ ]
524
+ },
525
+ {
526
+ "id": "frontend-design-system-animations",
527
+ "name": "animations",
528
+ "path": "frontend/design-system/animations.md",
529
+ "category": "frontend",
530
+ "subcategory": "design-system",
531
+ "tags": [
532
+ "frontend",
533
+ "design-system"
534
+ ]
535
+ },
536
+ {
537
+ "id": "frontend-design-system-naming",
538
+ "name": "naming",
539
+ "path": "frontend/design-system/naming.md",
540
+ "category": "frontend",
541
+ "subcategory": "design-system",
542
+ "tags": [
543
+ "frontend",
544
+ "design-system"
545
+ ]
546
+ },
547
+ {
548
+ "id": "frontend-nextjs-app-router",
549
+ "name": "app router",
550
+ "path": "frontend/nextjs/app-router.md",
551
+ "category": "frontend",
552
+ "subcategory": "nextjs",
553
+ "tags": [
554
+ "frontend",
555
+ "nextjs"
556
+ ]
557
+ },
558
+ {
559
+ "id": "frontend-nextjs-components",
560
+ "name": "components",
561
+ "path": "frontend/nextjs/components.md",
562
+ "category": "frontend",
563
+ "subcategory": "nextjs",
564
+ "tags": [
565
+ "frontend",
566
+ "nextjs"
567
+ ]
568
+ },
569
+ {
570
+ "id": "frontend-nextjs-data-fetching",
571
+ "name": "data fetching",
572
+ "path": "frontend/nextjs/data-fetching.md",
573
+ "category": "frontend",
574
+ "subcategory": "nextjs",
575
+ "tags": [
576
+ "frontend",
577
+ "nextjs"
578
+ ]
579
+ },
580
+ {
581
+ "id": "frontend-nextjs-forms",
582
+ "name": "forms",
583
+ "path": "frontend/nextjs/forms.md",
584
+ "category": "frontend",
585
+ "subcategory": "nextjs",
586
+ "tags": [
587
+ "frontend",
588
+ "nextjs"
589
+ ]
590
+ },
591
+ {
592
+ "id": "frontend-nextjs-naming-conventions",
593
+ "name": "naming conventions",
594
+ "path": "frontend/nextjs/naming-conventions.md",
595
+ "category": "frontend",
596
+ "subcategory": "nextjs",
597
+ "tags": [
598
+ "frontend",
599
+ "nextjs"
600
+ ]
601
+ },
602
+ {
603
+ "id": "frontend-nextjs-nextjs-patterns",
604
+ "name": "nextjs patterns",
605
+ "path": "frontend/nextjs/nextjs-patterns.md",
606
+ "category": "frontend",
607
+ "subcategory": "nextjs",
608
+ "tags": [
609
+ "frontend",
610
+ "nextjs"
611
+ ]
612
+ },
613
+ {
614
+ "id": "frontend-nextjs-project-structure",
615
+ "name": "project structure",
616
+ "path": "frontend/nextjs/project-structure.md",
617
+ "category": "frontend",
618
+ "subcategory": "nextjs",
619
+ "tags": [
620
+ "frontend",
621
+ "nextjs"
622
+ ]
623
+ },
624
+ {
625
+ "id": "frontend-nextjs-state-management",
626
+ "name": "state management",
627
+ "path": "frontend/nextjs/state-management.md",
628
+ "category": "frontend",
629
+ "subcategory": "nextjs",
630
+ "tags": [
631
+ "frontend",
632
+ "nextjs"
633
+ ]
634
+ },
635
+ {
636
+ "id": "frontend-nextjs-testing",
637
+ "name": "testing",
638
+ "path": "frontend/nextjs/testing.md",
639
+ "category": "frontend",
640
+ "subcategory": "nextjs",
641
+ "tags": [
642
+ "frontend",
643
+ "nextjs"
644
+ ]
645
+ },
646
+ {
647
+ "id": "infrastructure-azure-azure",
648
+ "name": "azure",
649
+ "path": "infrastructure/azure/azure.md",
650
+ "category": "infrastructure",
651
+ "subcategory": "azure",
652
+ "tags": [
653
+ "infrastructure",
654
+ "azure"
655
+ ]
656
+ },
657
+ {
658
+ "id": "infrastructure-azure-bicep-bicep-patterns",
659
+ "name": "bicep patterns",
660
+ "path": "infrastructure/azure/bicep/bicep-patterns.md",
661
+ "category": "infrastructure",
662
+ "subcategory": "azure",
663
+ "tags": [
664
+ "infrastructure",
665
+ "azure",
666
+ "bicep"
667
+ ]
668
+ },
669
+ {
670
+ "id": "infrastructure-azure-devops-azure-devops-setup",
671
+ "name": "azure devops setup",
672
+ "path": "infrastructure/azure/devops/azure-devops-setup.md",
673
+ "category": "infrastructure",
674
+ "subcategory": "azure",
675
+ "tags": [
676
+ "infrastructure",
677
+ "azure",
678
+ "devops"
679
+ ]
680
+ },
681
+ {
682
+ "id": "infrastructure-azure-devops-local-development",
683
+ "name": "local development",
684
+ "path": "infrastructure/azure/devops/local-development.md",
685
+ "category": "infrastructure",
686
+ "subcategory": "azure",
687
+ "tags": [
688
+ "infrastructure",
689
+ "azure",
690
+ "devops"
691
+ ]
692
+ },
693
+ {
694
+ "id": "infrastructure-azure-services-functions",
695
+ "name": "functions",
696
+ "path": "infrastructure/azure/services/functions.md",
697
+ "category": "infrastructure",
698
+ "subcategory": "azure",
699
+ "tags": [
700
+ "infrastructure",
701
+ "azure",
702
+ "services"
703
+ ]
704
+ },
705
+ {
706
+ "id": "infrastructure-azure-services-service-bus",
707
+ "name": "service bus",
708
+ "path": "infrastructure/azure/services/service-bus.md",
709
+ "category": "infrastructure",
710
+ "subcategory": "azure",
711
+ "tags": [
712
+ "infrastructure",
713
+ "azure",
714
+ "services"
715
+ ]
716
+ },
717
+ {
718
+ "id": "infrastructure-azure-services-storage",
719
+ "name": "storage",
720
+ "path": "infrastructure/azure/services/storage.md",
721
+ "category": "infrastructure",
722
+ "subcategory": "azure",
723
+ "tags": [
724
+ "infrastructure",
725
+ "azure",
726
+ "services"
727
+ ]
728
+ },
729
+ {
730
+ "id": "infrastructure-docker-easypanel-deploy",
731
+ "name": "easypanel deploy",
732
+ "path": "infrastructure/docker/easypanel-deploy.md",
733
+ "category": "infrastructure",
734
+ "subcategory": "docker",
735
+ "tags": [
736
+ "infrastructure",
737
+ "docker"
738
+ ]
739
+ },
740
+ {
741
+ "id": "infrastructure-supabase-mcp-setup",
742
+ "name": "mcp setup",
743
+ "path": "infrastructure/supabase/mcp-setup.md",
744
+ "category": "infrastructure",
745
+ "subcategory": "supabase",
746
+ "tags": [
747
+ "infrastructure",
748
+ "supabase"
749
+ ]
750
+ },
751
+ {
752
+ "id": "infrastructure-supabase-supabase-auth",
753
+ "name": "supabase auth",
754
+ "path": "infrastructure/supabase/supabase-auth.md",
755
+ "category": "infrastructure",
756
+ "subcategory": "supabase",
757
+ "tags": [
758
+ "infrastructure",
759
+ "supabase"
760
+ ]
761
+ },
762
+ {
763
+ "id": "infrastructure-supabase-supabase-pgvector",
764
+ "name": "supabase pgvector",
765
+ "path": "infrastructure/supabase/supabase-pgvector.md",
766
+ "category": "infrastructure",
767
+ "subcategory": "supabase",
768
+ "tags": [
769
+ "infrastructure",
770
+ "supabase"
771
+ ]
772
+ },
773
+ {
774
+ "id": "infrastructure-supabase-supabase-rls",
775
+ "name": "supabase rls",
776
+ "path": "infrastructure/supabase/supabase-rls.md",
777
+ "category": "infrastructure",
778
+ "subcategory": "supabase",
779
+ "tags": [
780
+ "infrastructure",
781
+ "supabase"
782
+ ]
783
+ },
784
+ {
785
+ "id": "infrastructure-supabase-supabase-storage",
786
+ "name": "supabase storage",
787
+ "path": "infrastructure/supabase/supabase-storage.md",
788
+ "category": "infrastructure",
789
+ "subcategory": "supabase",
790
+ "tags": [
791
+ "infrastructure",
792
+ "supabase"
793
+ ]
794
+ },
795
+ {
796
+ "id": "integration-api-graphql",
797
+ "name": "graphql",
798
+ "path": "integration/api/graphql.md",
799
+ "category": "integration",
800
+ "subcategory": "api",
801
+ "tags": [
802
+ "integration",
803
+ "api"
804
+ ]
805
+ },
806
+ {
807
+ "id": "integration-api-grpc",
808
+ "name": "grpc",
809
+ "path": "integration/api/grpc.md",
810
+ "category": "integration",
811
+ "subcategory": "api",
812
+ "tags": [
813
+ "integration",
814
+ "api"
815
+ ]
816
+ },
817
+ {
818
+ "id": "integration-api-rest-design",
819
+ "name": "rest design",
820
+ "path": "integration/api/rest-design.md",
821
+ "category": "integration",
822
+ "subcategory": "api",
823
+ "tags": [
824
+ "integration",
825
+ "api"
826
+ ]
827
+ },
828
+ {
829
+ "id": "integration-event-driven-cqrs",
830
+ "name": "cqrs",
831
+ "path": "integration/event-driven/cqrs.md",
832
+ "category": "integration",
833
+ "subcategory": "event-driven",
834
+ "tags": [
835
+ "integration",
836
+ "event-driven"
837
+ ]
838
+ },
839
+ {
840
+ "id": "integration-event-driven-event-sourcing",
841
+ "name": "event sourcing",
842
+ "path": "integration/event-driven/event-sourcing.md",
843
+ "category": "integration",
844
+ "subcategory": "event-driven",
845
+ "tags": [
846
+ "integration",
847
+ "event-driven"
848
+ ]
849
+ },
850
+ {
851
+ "id": "integration-event-driven-service-bus",
852
+ "name": "service bus",
853
+ "path": "integration/event-driven/service-bus.md",
854
+ "category": "integration",
855
+ "subcategory": "event-driven",
856
+ "tags": [
857
+ "integration",
858
+ "event-driven"
859
+ ]
860
+ },
861
+ {
862
+ "id": "integration-mcp-mcp-tools",
863
+ "name": "mcp tools",
864
+ "path": "integration/mcp/mcp-tools.md",
865
+ "category": "integration",
866
+ "subcategory": "mcp",
867
+ "tags": [
868
+ "integration",
869
+ "mcp"
870
+ ]
871
+ },
872
+ {
873
+ "id": "observability-logging",
874
+ "name": "logging",
875
+ "path": "observability/logging.md",
876
+ "category": "observability",
877
+ "subcategory": null,
878
+ "tags": [
879
+ "observability"
880
+ ]
881
+ },
882
+ {
883
+ "id": "observability-metrics",
884
+ "name": "metrics",
885
+ "path": "observability/metrics.md",
886
+ "category": "observability",
887
+ "subcategory": null,
888
+ "tags": [
889
+ "observability"
890
+ ]
891
+ },
892
+ {
893
+ "id": "observability-monitoring",
894
+ "name": "monitoring",
895
+ "path": "observability/monitoring.md",
896
+ "category": "observability",
897
+ "subcategory": null,
898
+ "tags": [
899
+ "observability"
900
+ ]
901
+ },
902
+ {
903
+ "id": "observability-tracing",
904
+ "name": "tracing",
905
+ "path": "observability/tracing.md",
906
+ "category": "observability",
907
+ "subcategory": null,
908
+ "tags": [
909
+ "observability"
910
+ ]
911
+ },
912
+ {
913
+ "id": "workflows-parallel-execution",
914
+ "name": "parallel execution",
915
+ "path": "workflows/parallel-execution.md",
916
+ "category": "workflows",
917
+ "subcategory": null,
918
+ "tags": [
919
+ "workflows"
920
+ ]
921
+ },
922
+ {
923
+ "id": "workflows-thread-management",
924
+ "name": "thread management",
925
+ "path": "workflows/thread-management.md",
926
+ "category": "workflows",
927
+ "subcategory": null,
928
+ "tags": [
929
+ "workflows"
930
+ ]
931
+ }
932
+ ]
933
+ }