@opengroundplan/core 0.1.1

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 (1739) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/adapters/README.md +155 -0
  4. package/adapters/_shared/README.md +16 -0
  5. package/adapters/aider/adapter.yaml +30 -0
  6. package/adapters/aider/templates/.aider.conf.yml.tmpl +5 -0
  7. package/adapters/amp/adapter.yaml +32 -0
  8. package/adapters/amp/templates/SKILL.md.tmpl +8 -0
  9. package/adapters/antigravity-cli/adapter.yaml +36 -0
  10. package/adapters/antigravity-cli/templates/ANTIGRAVITY.md.tmpl +11 -0
  11. package/adapters/claude-code/adapter.yaml +65 -0
  12. package/adapters/claude-code/templates/CLAUDE.md.tmpl +24 -0
  13. package/adapters/claude-code/templates/SKILL.md.tmpl +8 -0
  14. package/adapters/claude-code/templates/agent.md.tmpl +9 -0
  15. package/adapters/claude-code/templates/command.md.tmpl +6 -0
  16. package/adapters/claude-code/templates/rule.md.tmpl +8 -0
  17. package/adapters/claude-code/templates/settings.json.tmpl +11 -0
  18. package/adapters/cline/adapter.yaml +31 -0
  19. package/adapters/cline/templates/rule.md.tmpl +8 -0
  20. package/adapters/codex/adapter.yaml +29 -0
  21. package/adapters/continue/adapter.yaml +36 -0
  22. package/adapters/continue/templates/00-agents-md.md.tmpl +9 -0
  23. package/adapters/continue/templates/rule.md.tmpl +8 -0
  24. package/adapters/cursor/adapter.yaml +34 -0
  25. package/adapters/cursor/templates/rule.mdc.tmpl +9 -0
  26. package/adapters/gemini-cli/adapter.yaml +51 -0
  27. package/adapters/gemini-cli/templates/GEMINI.md.tmpl +9 -0
  28. package/adapters/gemini-cli/templates/command.toml.tmpl +4 -0
  29. package/adapters/github-copilot/adapter.yaml +44 -0
  30. package/adapters/github-copilot/templates/instructions.md.tmpl +8 -0
  31. package/adapters/github-copilot/templates/prompt.prompt.md.tmpl +6 -0
  32. package/adapters/opencode/adapter.yaml +18 -0
  33. package/adapters/opencode/templates/opencode.json.tmpl +4 -0
  34. package/adapters/roo-code/adapter.yaml +21 -0
  35. package/adapters/roo-code/templates/rule.md.tmpl +5 -0
  36. package/adapters/windsurf/adapter.yaml +34 -0
  37. package/adapters/windsurf/templates/agents-md.md.tmpl +12 -0
  38. package/adapters/windsurf/templates/rule.md.tmpl +9 -0
  39. package/adapters/windsurf/templates/workflow.md.tmpl +7 -0
  40. package/adapters/zed/adapter.yaml +14 -0
  41. package/catalog/README.md +62 -0
  42. package/catalog/architectures/agentic-tool-loop.yaml +62 -0
  43. package/catalog/architectures/bff.yaml +58 -0
  44. package/catalog/architectures/clean.yaml +61 -0
  45. package/catalog/architectures/cqrs.yaml +58 -0
  46. package/catalog/architectures/ddd-tactical.yaml +68 -0
  47. package/catalog/architectures/event-driven.yaml +59 -0
  48. package/catalog/architectures/feature-sliced-design.yaml +61 -0
  49. package/catalog/architectures/hexagonal.yaml +60 -0
  50. package/catalog/architectures/lakehouse.yaml +63 -0
  51. package/catalog/architectures/layered.yaml +60 -0
  52. package/catalog/architectures/llm-workflow.yaml +59 -0
  53. package/catalog/architectures/medallion.yaml +60 -0
  54. package/catalog/architectures/micro-frontends.yaml +60 -0
  55. package/catalog/architectures/microservices.yaml +62 -0
  56. package/catalog/architectures/modular-monolith.yaml +62 -0
  57. package/catalog/architectures/monolith.yaml +61 -0
  58. package/catalog/architectures/multi-agent.yaml +61 -0
  59. package/catalog/architectures/mvc-mvvm.yaml +62 -0
  60. package/catalog/architectures/nextjs-colocation.yaml +67 -0
  61. package/catalog/architectures/onion.yaml +60 -0
  62. package/catalog/architectures/pipes-and-filters.yaml +59 -0
  63. package/catalog/architectures/rag-hybrid.yaml +62 -0
  64. package/catalog/architectures/serverless.yaml +58 -0
  65. package/catalog/architectures/vertical-slice.yaml +61 -0
  66. package/catalog/characteristics.yaml +165 -0
  67. package/catalog/decision.yaml +309 -0
  68. package/catalog/sources/README.md +697 -0
  69. package/catalog/sources/agent-tooling.yaml +1180 -0
  70. package/catalog/sources/ai-llm.yaml +508 -0
  71. package/catalog/sources/auth.yaml +618 -0
  72. package/catalog/sources/backend-api.yaml +720 -0
  73. package/catalog/sources/cms-ecommerce.yaml +558 -0
  74. package/catalog/sources/data-engineering.yaml +618 -0
  75. package/catalog/sources/database-orm.yaml +507 -0
  76. package/catalog/sources/devops-cicd.yaml +422 -0
  77. package/catalog/sources/frontend-ui.yaml +654 -0
  78. package/catalog/sources/fullstack-saas.yaml +629 -0
  79. package/catalog/sources/game-3d.yaml +834 -0
  80. package/catalog/sources/gaps.md +268 -0
  81. package/catalog/sources/layer-plan.yaml +3919 -0
  82. package/catalog/sources/mobile-desktop.yaml +638 -0
  83. package/catalog/sources/observability.yaml +1364 -0
  84. package/catalog/sources/payments-billing.yaml +553 -0
  85. package/catalog/sources/realtime-messaging.yaml +787 -0
  86. package/catalog/sources/security-compliance.yaml +613 -0
  87. package/catalog/sources/testing.yaml +652 -0
  88. package/dist/adapters.d.ts +43 -0
  89. package/dist/adapters.js +181 -0
  90. package/dist/adapters.js.map +1 -0
  91. package/dist/agentkit.d.ts +65 -0
  92. package/dist/agentkit.js +183 -0
  93. package/dist/agentkit.js.map +1 -0
  94. package/dist/apply.d.ts +21 -0
  95. package/dist/apply.js +135 -0
  96. package/dist/apply.js.map +1 -0
  97. package/dist/condition.d.ts +14 -0
  98. package/dist/condition.js +121 -0
  99. package/dist/condition.js.map +1 -0
  100. package/dist/config.d.ts +36 -0
  101. package/dist/config.js +131 -0
  102. package/dist/config.js.map +1 -0
  103. package/dist/index.d.ts +15 -0
  104. package/dist/index.js +16 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/intent.d.ts +52 -0
  107. package/dist/intent.js +220 -0
  108. package/dist/intent.js.map +1 -0
  109. package/dist/license.d.ts +11 -0
  110. package/dist/license.js +68 -0
  111. package/dist/license.js.map +1 -0
  112. package/dist/loader.d.ts +12 -0
  113. package/dist/loader.js +118 -0
  114. package/dist/loader.js.map +1 -0
  115. package/dist/merge.d.ts +28 -0
  116. package/dist/merge.js +412 -0
  117. package/dist/merge.js.map +1 -0
  118. package/dist/plan.d.ts +12 -0
  119. package/dist/plan.js +206 -0
  120. package/dist/plan.js.map +1 -0
  121. package/dist/python-data.json +575 -0
  122. package/dist/python-requirements.d.ts +7 -0
  123. package/dist/python-requirements.js +79 -0
  124. package/dist/python-requirements.js.map +1 -0
  125. package/dist/recommend.d.ts +27 -0
  126. package/dist/recommend.js +68 -0
  127. package/dist/recommend.js.map +1 -0
  128. package/dist/resolve.d.ts +22 -0
  129. package/dist/resolve.js +132 -0
  130. package/dist/resolve.js.map +1 -0
  131. package/dist/schema.d.ts +878 -0
  132. package/dist/schema.js +307 -0
  133. package/dist/schema.js.map +1 -0
  134. package/dist/tokens.d.ts +42 -0
  135. package/dist/tokens.js +90 -0
  136. package/dist/tokens.js.map +1 -0
  137. package/package.json +61 -0
  138. package/registry/README.md +194 -0
  139. package/registry/agents/architecture-reviewer/agent.md +59 -0
  140. package/registry/agents/architecture-reviewer/agent.yaml +7 -0
  141. package/registry/agents/breaking-change-detector/agent.md +83 -0
  142. package/registry/agents/breaking-change-detector/agent.yaml +7 -0
  143. package/registry/agents/security-reviewer/agent.md +63 -0
  144. package/registry/agents/security-reviewer/agent.yaml +7 -0
  145. package/registry/agents/solid-reviewer/agent.md +61 -0
  146. package/registry/agents/solid-reviewer/agent.yaml +7 -0
  147. package/registry/agents/spec-consistency-checker/agent.md +70 -0
  148. package/registry/agents/spec-consistency-checker/agent.yaml +7 -0
  149. package/registry/agents/test-coverage-reviewer/agent.md +67 -0
  150. package/registry/agents/test-coverage-reviewer/agent.yaml +7 -0
  151. package/registry/commands/adr/command.md +80 -0
  152. package/registry/commands/adr/command.yaml +7 -0
  153. package/registry/commands/breaking/command.md +72 -0
  154. package/registry/commands/breaking/command.yaml +7 -0
  155. package/registry/commands/done/command.md +50 -0
  156. package/registry/commands/done/command.yaml +7 -0
  157. package/registry/commands/handoff/command.md +65 -0
  158. package/registry/commands/handoff/command.yaml +7 -0
  159. package/registry/commands/plan/command.md +81 -0
  160. package/registry/commands/plan/command.yaml +7 -0
  161. package/registry/commands/review/command.md +54 -0
  162. package/registry/commands/review/command.yaml +8 -0
  163. package/registry/commands/scope/command.md +45 -0
  164. package/registry/commands/scope/command.yaml +7 -0
  165. package/registry/commands/spec/command.md +81 -0
  166. package/registry/commands/spec/command.yaml +7 -0
  167. package/registry/commands/tasks/command.md +70 -0
  168. package/registry/commands/tasks/command.yaml +7 -0
  169. package/registry/commands/verify/command.md +43 -0
  170. package/registry/commands/verify/command.yaml +7 -0
  171. package/registry/hooks/_lib/config.ps1 +116 -0
  172. package/registry/hooks/_lib/config.sh +143 -0
  173. package/registry/hooks/_lib/defaults.json +76 -0
  174. package/registry/hooks/_lib/json_get.mjs +59 -0
  175. package/registry/hooks/_lib/json_get.py +60 -0
  176. package/registry/hooks/architecture-boundary-check/hook.ps1 +46 -0
  177. package/registry/hooks/architecture-boundary-check/hook.sh +49 -0
  178. package/registry/hooks/architecture-boundary-check/hook.yaml +18 -0
  179. package/registry/hooks/conventional-commit-check/hook.ps1 +68 -0
  180. package/registry/hooks/conventional-commit-check/hook.sh +68 -0
  181. package/registry/hooks/conventional-commit-check/hook.yaml +16 -0
  182. package/registry/hooks/format-on-write/hook.ps1 +36 -0
  183. package/registry/hooks/format-on-write/hook.sh +33 -0
  184. package/registry/hooks/format-on-write/hook.yaml +14 -0
  185. package/registry/hooks/guard-protected-paths/hook.ps1 +34 -0
  186. package/registry/hooks/guard-protected-paths/hook.sh +35 -0
  187. package/registry/hooks/guard-protected-paths/hook.yaml +14 -0
  188. package/registry/hooks/no-secrets/hook.ps1 +67 -0
  189. package/registry/hooks/no-secrets/hook.sh +56 -0
  190. package/registry/hooks/no-secrets/hook.yaml +16 -0
  191. package/registry/skills/adr-write/SKILL.md +127 -0
  192. package/registry/skills/adr-write/references/adr-template.md +143 -0
  193. package/registry/skills/adr-write/references/when-to-write-an-adr.md +74 -0
  194. package/registry/skills/adr-write/skill.yaml +7 -0
  195. package/registry/skills/architecture-guard/SKILL.md +150 -0
  196. package/registry/skills/architecture-guard/references/boundary-patterns.md +142 -0
  197. package/registry/skills/architecture-guard/references/violation-catalog.md +149 -0
  198. package/registry/skills/architecture-guard/skill.yaml +7 -0
  199. package/registry/skills/handoff/SKILL.md +125 -0
  200. package/registry/skills/handoff/references/agent-protocol.md +128 -0
  201. package/registry/skills/handoff/references/handoff-template.md +116 -0
  202. package/registry/skills/handoff/skill.yaml +7 -0
  203. package/registry/skills/onboard/SKILL.md +120 -0
  204. package/registry/skills/onboard/references/discovery-checklist.md +129 -0
  205. package/registry/skills/onboard/references/repo-map-template.md +120 -0
  206. package/registry/skills/onboard/skill.yaml +7 -0
  207. package/registry/skills/perf-budget/SKILL.md +152 -0
  208. package/registry/skills/perf-budget/references/budget-catalog.md +165 -0
  209. package/registry/skills/perf-budget/references/measurement-sources.md +163 -0
  210. package/registry/skills/perf-budget/skill.yaml +7 -0
  211. package/registry/skills/security-review/SKILL.md +145 -0
  212. package/registry/skills/security-review/references/owasp-checklist.md +190 -0
  213. package/registry/skills/security-review/references/secret-patterns.md +110 -0
  214. package/registry/skills/security-review/skill.yaml +7 -0
  215. package/registry/skills/spec-driven/SKILL.md +124 -0
  216. package/registry/skills/spec-driven/references/phase-gates.md +115 -0
  217. package/registry/skills/spec-driven/references/plan-template.md +98 -0
  218. package/registry/skills/spec-driven/references/spec-template.md +101 -0
  219. package/registry/skills/spec-driven/references/tasks-template.md +96 -0
  220. package/registry/skills/spec-driven/skill.yaml +7 -0
  221. package/registry/skills/test-first/SKILL.md +125 -0
  222. package/registry/skills/test-first/references/anti-patterns.md +178 -0
  223. package/registry/skills/test-first/references/test-design.md +156 -0
  224. package/registry/skills/test-first/skill.yaml +7 -0
  225. package/templates/README.md +104 -0
  226. package/templates/agent-kits/core/blueprint.yaml +39 -0
  227. package/templates/agent-kits/core/files/.agent/ACTIVE.md +25 -0
  228. package/templates/agent-kits/core/files/.agent/DECISIONS.md +27 -0
  229. package/templates/agent-kits/core/files/.agent/DELEGATION.md +30 -0
  230. package/templates/agent-kits/core/files/.agent/DONE.md +9 -0
  231. package/templates/agent-kits/core/files/.agent/HANDOFF.md +38 -0
  232. package/templates/agent-kits/core/files/.agent/delegate.mjs +352 -0
  233. package/templates/agent-kits/core/files/.agent/delegation-tools.json +1 -0
  234. package/templates/agent-kits/core/files/.agent/delegation.yaml +33 -0
  235. package/templates/agent-kits/core/files/AGENTS.md +107 -0
  236. package/templates/agent-kits/core/files/docs/ARCHITECTURE.md +26 -0
  237. package/templates/agent-kits/core/files/docs/adr/0001-record-architecture-decisions.md +27 -0
  238. package/templates/agent-kits/core/files/specs/000-template/plan.md +48 -0
  239. package/templates/agent-kits/core/files/specs/000-template/spec.md +45 -0
  240. package/templates/agent-kits/core/files/specs/000-template/tasks.md +21 -0
  241. package/templates/agent-kits/core/files/specs/README.md +32 -0
  242. package/templates/architectures/agentic-tool-loop/blueprint.yaml +137 -0
  243. package/templates/architectures/agentic-tool-loop/files/.importlinter +47 -0
  244. package/templates/architectures/agentic-tool-loop/files/docs/architecture/agentic-tool-loop.node.md +83 -0
  245. package/templates/architectures/agentic-tool-loop/files/docs/architecture/agentic-tool-loop.python.md +93 -0
  246. package/templates/architectures/agentic-tool-loop/files/package.json +6 -0
  247. package/templates/architectures/agentic-tool-loop/files/pyproject.toml +5 -0
  248. package/templates/architectures/agentic-tool-loop/files/scripts/check-agent-loop.mjs +227 -0
  249. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/__init__.py +20 -0
  250. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/loop.py +112 -0
  251. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/model.py +50 -0
  252. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/sandbox.py +62 -0
  253. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/settings.py +69 -0
  254. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/__init__.py +6 -0
  255. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/current_time.py +27 -0
  256. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/registry.py +44 -0
  257. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/spec.py +29 -0
  258. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/write_note.py +36 -0
  259. package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/trace.py +33 -0
  260. package/templates/architectures/agentic-tool-loop/files/src/agent/config.ts +65 -0
  261. package/templates/architectures/agentic-tool-loop/files/src/agent/index.ts +8 -0
  262. package/templates/architectures/agentic-tool-loop/files/src/agent/loop.ts +117 -0
  263. package/templates/architectures/agentic-tool-loop/files/src/agent/model.ts +35 -0
  264. package/templates/architectures/agentic-tool-loop/files/src/agent/sandbox.ts +52 -0
  265. package/templates/architectures/agentic-tool-loop/files/src/agent/tools/current-time.ts +13 -0
  266. package/templates/architectures/agentic-tool-loop/files/src/agent/tools/registry.ts +49 -0
  267. package/templates/architectures/agentic-tool-loop/files/src/agent/tools/types.ts +26 -0
  268. package/templates/architectures/agentic-tool-loop/files/src/agent/tools/write-note.ts +23 -0
  269. package/templates/architectures/agentic-tool-loop/files/src/agent/trace.ts +26 -0
  270. package/templates/architectures/agentic-tool-loop/files/tests/architecture/test_agent_loop.py +167 -0
  271. package/templates/architectures/bff/blueprint.yaml +83 -0
  272. package/templates/architectures/bff/files/docs/architecture/bff.node.md +115 -0
  273. package/templates/architectures/bff/files/docs/architecture/bff.typescript.md +113 -0
  274. package/templates/architectures/bff/files/scripts/check-bff-boundaries.mjs +223 -0
  275. package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/aggregate.ts +38 -0
  276. package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/config.ts +30 -0
  277. package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/dto.ts +21 -0
  278. package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/index.ts +6 -0
  279. package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/routes.ts +21 -0
  280. package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/aggregate.ts +23 -0
  281. package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/config.ts +26 -0
  282. package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/dto.ts +16 -0
  283. package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/index.ts +6 -0
  284. package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/routes.ts +21 -0
  285. package/templates/architectures/bff/files/src/downstream/config.ts +35 -0
  286. package/templates/architectures/bff/files/src/downstream/http-client.ts +41 -0
  287. package/templates/architectures/bff/files/src/downstream/index.ts +9 -0
  288. package/templates/architectures/bff/files/src/downstream/orders-client.ts +23 -0
  289. package/templates/architectures/bff/files/src/downstream/profile-client.ts +18 -0
  290. package/templates/architectures/clean/blueprint.yaml +147 -0
  291. package/templates/architectures/clean/files/.importlinter +35 -0
  292. package/templates/architectures/clean/files/Directory.Packages.props +7 -0
  293. package/templates/architectures/clean/files/__solutionName.dot__.slnx +10 -0
  294. package/templates/architectures/clean/files/docs/architecture/clean.md +87 -0
  295. package/templates/architectures/clean/files/eslint.config.architecture.mjs +27 -0
  296. package/templates/architectures/clean/files/internal/application/doc.go +2 -0
  297. package/templates/architectures/clean/files/internal/application/ports/doc.go +2 -0
  298. package/templates/architectures/clean/files/internal/architecture/architecture_test.go +166 -0
  299. package/templates/architectures/clean/files/internal/architecture/doc.go +3 -0
  300. package/templates/architectures/clean/files/internal/domain/doc.go +2 -0
  301. package/templates/architectures/clean/files/internal/infrastructure/doc.go +2 -0
  302. package/templates/architectures/clean/files/pyproject.toml +2 -0
  303. package/templates/architectures/clean/files/scripts/check-architecture.mjs +68 -0
  304. package/templates/architectures/clean/files/src/__solutionName.dot__.Application/Abstractions/.gitkeep +1 -0
  305. package/templates/architectures/clean/files/src/__solutionName.dot__.Application/AssemblyMarker.cs +10 -0
  306. package/templates/architectures/clean/files/src/__solutionName.dot__.Application/UseCases/.gitkeep +1 -0
  307. package/templates/architectures/clean/files/src/__solutionName.dot__.Application/__solutionName.dot__.Application.csproj +14 -0
  308. package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/AssemblyMarker.cs +10 -0
  309. package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/Entities/.gitkeep +1 -0
  310. package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/Events/.gitkeep +1 -0
  311. package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/ValueObjects/.gitkeep +1 -0
  312. package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/__solutionName.dot__.Domain.csproj +11 -0
  313. package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/AssemblyMarker.cs +10 -0
  314. package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/External/.gitkeep +1 -0
  315. package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/Persistence/.gitkeep +1 -0
  316. package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/__solutionName.dot__.Infrastructure.csproj +14 -0
  317. package/templates/architectures/clean/files/src/__solutionName.snake__/application/__init__.py +1 -0
  318. package/templates/architectures/clean/files/src/__solutionName.snake__/application/ports/__init__.py +1 -0
  319. package/templates/architectures/clean/files/src/__solutionName.snake__/application/use_cases/__init__.py +1 -0
  320. package/templates/architectures/clean/files/src/__solutionName.snake__/domain/__init__.py +1 -0
  321. package/templates/architectures/clean/files/src/__solutionName.snake__/domain/entities/__init__.py +1 -0
  322. package/templates/architectures/clean/files/src/__solutionName.snake__/domain/events/__init__.py +1 -0
  323. package/templates/architectures/clean/files/src/__solutionName.snake__/infrastructure/__init__.py +1 -0
  324. package/templates/architectures/clean/files/src/__solutionName.snake__/infrastructure/external/__init__.py +1 -0
  325. package/templates/architectures/clean/files/src/__solutionName.snake__/infrastructure/persistence/__init__.py +1 -0
  326. package/templates/architectures/clean/files/src/application/ports/README.md +1 -0
  327. package/templates/architectures/clean/files/src/application/use-cases/README.md +1 -0
  328. package/templates/architectures/clean/files/src/domain/README.md +1 -0
  329. package/templates/architectures/clean/files/src/infrastructure/README.md +1 -0
  330. package/templates/architectures/clean/files/tests/__solutionName.dot__.ArchitectureTests/DependencyRuleTests.cs +118 -0
  331. package/templates/architectures/clean/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +27 -0
  332. package/templates/architectures/cqrs/blueprint.yaml +134 -0
  333. package/templates/architectures/cqrs/files/.importlinter +26 -0
  334. package/templates/architectures/cqrs/files/Directory.Packages.props +7 -0
  335. package/templates/architectures/cqrs/files/__solutionName.dot__.slnx +11 -0
  336. package/templates/architectures/cqrs/files/docs/architecture/cqrs.dotnet.md +116 -0
  337. package/templates/architectures/cqrs/files/docs/architecture/cqrs.node.md +117 -0
  338. package/templates/architectures/cqrs/files/docs/architecture/cqrs.python.md +107 -0
  339. package/templates/architectures/cqrs/files/eslint.config.cqrs.mjs +29 -0
  340. package/templates/architectures/cqrs/files/pyproject.toml +2 -0
  341. package/templates/architectures/cqrs/files/scripts/check-cqrs-boundaries.mjs +132 -0
  342. package/templates/architectures/cqrs/files/src/__contextName.kebab__/commands/index.ts +15 -0
  343. package/templates/architectures/cqrs/files/src/__contextName.kebab__/domain/index.ts +10 -0
  344. package/templates/architectures/cqrs/files/src/__contextName.kebab__/queries/index.ts +13 -0
  345. package/templates/architectures/cqrs/files/src/__contextName.kebab__/read-models/index.ts +7 -0
  346. package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/AssemblyMarker.cs +9 -0
  347. package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/ICommandHandler.cs +12 -0
  348. package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/IQueryHandler.cs +10 -0
  349. package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/__solutionName.dot__.Abstractions.csproj +11 -0
  350. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Commands/AssemblyMarker.cs +9 -0
  351. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Commands/Handlers/.gitkeep +2 -0
  352. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Commands/__solutionName.dot__.__contextName.pascal__.Commands.csproj +15 -0
  353. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Domain/Aggregates/.gitkeep +2 -0
  354. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Domain/AssemblyMarker.cs +9 -0
  355. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Domain/__solutionName.dot__.__contextName.pascal__.Domain.csproj +11 -0
  356. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/AssemblyMarker.cs +9 -0
  357. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/Handlers/.gitkeep +2 -0
  358. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/ReadModels/.gitkeep +2 -0
  359. package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/__solutionName.dot__.__contextName.pascal__.Queries.csproj +14 -0
  360. package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/__init__.py +6 -0
  361. package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/commands/__init__.py +15 -0
  362. package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/domain/__init__.py +9 -0
  363. package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/queries/__init__.py +14 -0
  364. package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/read_models/__init__.py +14 -0
  365. package/templates/architectures/cqrs/files/tests/ArchitectureTests/ArchitectureTests.csproj +33 -0
  366. package/templates/architectures/cqrs/files/tests/ArchitectureTests/CqrsBoundaryTests.cs +104 -0
  367. package/templates/architectures/event-driven/blueprint.yaml +163 -0
  368. package/templates/architectures/event-driven/files/.importlinter +43 -0
  369. package/templates/architectures/event-driven/files/Directory.Packages.props +11 -0
  370. package/templates/architectures/event-driven/files/__solutionName.dot__.slnx +11 -0
  371. package/templates/architectures/event-driven/files/docs/architecture/event-driven.dotnet.md +117 -0
  372. package/templates/architectures/event-driven/files/docs/architecture/event-driven.node.md +98 -0
  373. package/templates/architectures/event-driven/files/docs/architecture/event-driven.python.md +100 -0
  374. package/templates/architectures/event-driven/files/scripts/check-event-boundaries.mjs +181 -0
  375. package/templates/architectures/event-driven/files/src/EventCatalog/EventCatalog.csproj +11 -0
  376. package/templates/architectures/event-driven/files/src/EventCatalog/EventContract.cs +36 -0
  377. package/templates/architectures/event-driven/files/src/EventCatalog/EventEnvelope.cs +10 -0
  378. package/templates/architectures/event-driven/files/src/EventCatalog/EventRegistry.cs +16 -0
  379. package/templates/architectures/event-driven/files/src/EventCatalog/EventSchemaException.cs +19 -0
  380. package/templates/architectures/event-driven/files/src/EventCatalog/__eventDomain.pascal__/__firstEvent.pascal__V1.cs +20 -0
  381. package/templates/architectures/event-driven/files/src/EventHandlers/EventHandlers.csproj +14 -0
  382. package/templates/architectures/event-driven/files/src/EventHandlers/__firstHandler.pascal__/__firstHandler.pascal__Handler.cs +32 -0
  383. package/templates/architectures/event-driven/files/src/EventHandlers/__secondHandler.pascal__/__secondHandler.pascal__Handler.cs +30 -0
  384. package/templates/architectures/event-driven/files/src/EventPublishers/EventPublishers.csproj +14 -0
  385. package/templates/architectures/event-driven/files/src/EventPublishers/__eventDomain.pascal__/__eventDomain.pascal__Publisher.cs +27 -0
  386. package/templates/architectures/event-driven/files/src/Messaging/Adapters/InMemoryEventBroker.cs +107 -0
  387. package/templates/architectures/event-driven/files/src/Messaging/BrokerOptions.cs +19 -0
  388. package/templates/architectures/event-driven/files/src/Messaging/IEventBroker.cs +6 -0
  389. package/templates/architectures/event-driven/files/src/Messaging/IEventPublisher.cs +9 -0
  390. package/templates/architectures/event-driven/files/src/Messaging/IEventSubscriber.cs +11 -0
  391. package/templates/architectures/event-driven/files/src/Messaging/Messaging.csproj +18 -0
  392. package/templates/architectures/event-driven/files/src/Messaging/MessagingRegistration.cs +36 -0
  393. package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/__init__.py +17 -0
  394. package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/adapters/__init__.py +1 -0
  395. package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/adapters/in_memory.py +61 -0
  396. package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/config.py +42 -0
  397. package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/factory.py +13 -0
  398. package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/port.py +25 -0
  399. package/templates/architectures/event-driven/files/src/__solutionName.snake__/eventing.py +26 -0
  400. package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__eventDomain.snake__/__firstEvent.snake__/__init__.py +5 -0
  401. package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__eventDomain.snake__/__firstEvent.snake__/v1.py +34 -0
  402. package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__eventDomain.snake__/__init__.py +1 -0
  403. package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__init__.py +27 -0
  404. package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/contract.py +35 -0
  405. package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/envelope.py +24 -0
  406. package/templates/architectures/event-driven/files/src/__solutionName.snake__/handlers/__firstHandler.snake__/__init__.py +30 -0
  407. package/templates/architectures/event-driven/files/src/__solutionName.snake__/handlers/__init__.py +1 -0
  408. package/templates/architectures/event-driven/files/src/__solutionName.snake__/handlers/__secondHandler.snake__/__init__.py +25 -0
  409. package/templates/architectures/event-driven/files/src/__solutionName.snake__/publishers/__eventDomain.snake__.py +17 -0
  410. package/templates/architectures/event-driven/files/src/__solutionName.snake__/publishers/__init__.py +5 -0
  411. package/templates/architectures/event-driven/files/src/bootstrap/events.ts +24 -0
  412. package/templates/architectures/event-driven/files/src/broker/adapters/in-memory-broker.ts +63 -0
  413. package/templates/architectures/event-driven/files/src/broker/config.ts +39 -0
  414. package/templates/architectures/event-driven/files/src/broker/factory.ts +13 -0
  415. package/templates/architectures/event-driven/files/src/broker/index.ts +6 -0
  416. package/templates/architectures/event-driven/files/src/broker/port.ts +15 -0
  417. package/templates/architectures/event-driven/files/src/events/__eventDomain.kebab__/__firstEvent.kebab__/v1.ts +20 -0
  418. package/templates/architectures/event-driven/files/src/events/contract.ts +36 -0
  419. package/templates/architectures/event-driven/files/src/events/envelope.ts +20 -0
  420. package/templates/architectures/event-driven/files/src/events/index.ts +17 -0
  421. package/templates/architectures/event-driven/files/src/handlers/__firstHandler.kebab__/index.ts +21 -0
  422. package/templates/architectures/event-driven/files/src/handlers/__secondHandler.kebab__/index.ts +17 -0
  423. package/templates/architectures/event-driven/files/src/publishers/__eventDomain.kebab__.publisher.ts +20 -0
  424. package/templates/architectures/event-driven/files/tests/EventArchitectureTests/EventArchitectureTests.csproj +31 -0
  425. package/templates/architectures/event-driven/files/tests/EventArchitectureTests/EventBoundaryTests.cs +121 -0
  426. package/templates/architectures/event-driven/files/tests/architecture/test_event_boundaries.py +161 -0
  427. package/templates/architectures/feature-sliced-design/blueprint.yaml +121 -0
  428. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/app/.gitkeep +1 -0
  429. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/entities/.gitkeep +1 -0
  430. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/features/.gitkeep +1 -0
  431. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/pages/.gitkeep +1 -0
  432. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/api/index.ts +3 -0
  433. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/config/index.ts +3 -0
  434. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/lib/index.ts +3 -0
  435. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/ui/index.ts +3 -0
  436. package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/widgets/.gitkeep +1 -0
  437. package/templates/architectures/feature-sliced-design/files/docs/architecture.md +148 -0
  438. package/templates/architectures/feature-sliced-design/files/package.json +6 -0
  439. package/templates/architectures/feature-sliced-design/files/scripts/check-fsd-boundaries.mjs +210 -0
  440. package/templates/architectures/feature-sliced-design/files/src/_app/.gitkeep +1 -0
  441. package/templates/architectures/feature-sliced-design/files/src/_pages/.gitkeep +1 -0
  442. package/templates/architectures/feature-sliced-design/files/src/app/.gitkeep +1 -0
  443. package/templates/architectures/feature-sliced-design/files/src/entities/.gitkeep +1 -0
  444. package/templates/architectures/feature-sliced-design/files/src/features/.gitkeep +1 -0
  445. package/templates/architectures/feature-sliced-design/files/src/pages/.gitkeep +1 -0
  446. package/templates/architectures/feature-sliced-design/files/src/shared/api/index.ts +3 -0
  447. package/templates/architectures/feature-sliced-design/files/src/shared/config/index.ts +3 -0
  448. package/templates/architectures/feature-sliced-design/files/src/shared/lib/index.ts +3 -0
  449. package/templates/architectures/feature-sliced-design/files/src/shared/ui/index.ts +3 -0
  450. package/templates/architectures/feature-sliced-design/files/src/widgets/.gitkeep +1 -0
  451. package/templates/architectures/feature-sliced-design/files/steiger.config.js +21 -0
  452. package/templates/architectures/hexagonal/blueprint.yaml +146 -0
  453. package/templates/architectures/hexagonal/files/.importlinter +33 -0
  454. package/templates/architectures/hexagonal/files/Directory.Packages.props +8 -0
  455. package/templates/architectures/hexagonal/files/__solutionName.dot__.slnx +13 -0
  456. package/templates/architectures/hexagonal/files/docs/architecture/hexagonal.md +102 -0
  457. package/templates/architectures/hexagonal/files/internal/adapters/inbound/rest/doc.go +2 -0
  458. package/templates/architectures/hexagonal/files/internal/adapters/outbound/memory/doc.go +2 -0
  459. package/templates/architectures/hexagonal/files/internal/adapters/outbound/postgres/doc.go +2 -0
  460. package/templates/architectures/hexagonal/files/internal/application/doc.go +2 -0
  461. package/templates/architectures/hexagonal/files/internal/architecture/architecture_test.go +150 -0
  462. package/templates/architectures/hexagonal/files/internal/architecture/doc.go +2 -0
  463. package/templates/architectures/hexagonal/files/internal/bootstrap/doc.go +2 -0
  464. package/templates/architectures/hexagonal/files/internal/domain/doc.go +2 -0
  465. package/templates/architectures/hexagonal/files/internal/ports/inbound/doc.go +2 -0
  466. package/templates/architectures/hexagonal/files/internal/ports/outbound/doc.go +2 -0
  467. package/templates/architectures/hexagonal/files/pyproject.toml +2 -0
  468. package/templates/architectures/hexagonal/files/scripts/check-architecture.mjs +104 -0
  469. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Inbound.Http/HttpAdapterMarker.cs +4 -0
  470. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Inbound.Http/__solutionName.dot__.Adapters.Inbound.Http.csproj +15 -0
  471. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.InMemory/InMemoryAdapterMarker.cs +4 -0
  472. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.InMemory/__solutionName.dot__.Adapters.Outbound.InMemory.csproj +15 -0
  473. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.Persistence/PersistenceAdapterMarker.cs +4 -0
  474. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.Persistence/__solutionName.dot__.Adapters.Outbound.Persistence.csproj +15 -0
  475. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/ApplicationMarker.cs +4 -0
  476. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/Ports/Inbound/.gitkeep +1 -0
  477. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/Ports/Outbound/.gitkeep +1 -0
  478. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/UseCases/.gitkeep +1 -0
  479. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/__solutionName.dot__.Application.csproj +15 -0
  480. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Bootstrap/CompositionRoot.cs +8 -0
  481. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Bootstrap/__solutionName.dot__.Bootstrap.csproj +18 -0
  482. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Domain/DomainMarker.cs +4 -0
  483. package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Domain/__solutionName.dot__.Domain.csproj +12 -0
  484. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/__init__.py +1 -0
  485. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/inbound/__init__.py +1 -0
  486. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/inbound/http/__init__.py +1 -0
  487. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/outbound/__init__.py +1 -0
  488. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/outbound/in_memory/__init__.py +1 -0
  489. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/outbound/persistence/__init__.py +1 -0
  490. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/application/__init__.py +1 -0
  491. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/bootstrap/__init__.py +1 -0
  492. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/domain/__init__.py +1 -0
  493. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/ports/__init__.py +1 -0
  494. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/ports/inbound/__init__.py +1 -0
  495. package/templates/architectures/hexagonal/files/src/__solutionName.snake__/ports/outbound/__init__.py +1 -0
  496. package/templates/architectures/hexagonal/files/src/adapters/inbound/http/index.ts +2 -0
  497. package/templates/architectures/hexagonal/files/src/adapters/outbound/in-memory/index.ts +2 -0
  498. package/templates/architectures/hexagonal/files/src/adapters/outbound/persistence/index.ts +2 -0
  499. package/templates/architectures/hexagonal/files/src/application/index.ts +2 -0
  500. package/templates/architectures/hexagonal/files/src/bootstrap/index.ts +2 -0
  501. package/templates/architectures/hexagonal/files/src/domain/index.ts +2 -0
  502. package/templates/architectures/hexagonal/files/src/ports/inbound/index.ts +2 -0
  503. package/templates/architectures/hexagonal/files/src/ports/outbound/index.ts +2 -0
  504. package/templates/architectures/hexagonal/files/tests/ArchitectureTests/ArchitectureTests.csproj +34 -0
  505. package/templates/architectures/hexagonal/files/tests/ArchitectureTests/HexagonBoundaryTests.cs +135 -0
  506. package/templates/architectures/lakehouse/blueprint.yaml +103 -0
  507. package/templates/architectures/lakehouse/files/.importlinter +51 -0
  508. package/templates/architectures/lakehouse/files/docs/architecture/lakehouse.python.md +134 -0
  509. package/templates/architectures/lakehouse/files/pyproject.toml +5 -0
  510. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/__init__.py +20 -0
  511. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/catalog/__init__.py +21 -0
  512. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/catalog/_delta.py +155 -0
  513. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/catalog/_iceberg.py +214 -0
  514. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/maintenance/__init__.py +9 -0
  515. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/maintenance/__main__.py +31 -0
  516. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/maintenance/jobs.py +38 -0
  517. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/ports.py +58 -0
  518. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/queries/__init__.py +13 -0
  519. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/queries/reads.py +30 -0
  520. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/schema.py +66 -0
  521. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/settings.py +61 -0
  522. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/tables/__firstTable.snake__.py +22 -0
  523. package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/tables/__init__.py +28 -0
  524. package/templates/architectures/lakehouse/files/tests/architecture/test_lakehouse_boundaries.py +155 -0
  525. package/templates/architectures/layered/blueprint.yaml +159 -0
  526. package/templates/architectures/layered/files/.importlinter +18 -0
  527. package/templates/architectures/layered/files/Directory.Build.targets +10 -0
  528. package/templates/architectures/layered/files/Directory.Packages.props +7 -0
  529. package/templates/architectures/layered/files/__solutionName.dot__.slnx +9 -0
  530. package/templates/architectures/layered/files/architecture.layers.json +19 -0
  531. package/templates/architectures/layered/files/docs/architecture/layered.md +94 -0
  532. package/templates/architectures/layered/files/internal/architecture/doc.go +3 -0
  533. package/templates/architectures/layered/files/internal/architecture/layers_test.go +138 -0
  534. package/templates/architectures/layered/files/internal/business/doc.go +3 -0
  535. package/templates/architectures/layered/files/internal/data/doc.go +3 -0
  536. package/templates/architectures/layered/files/internal/presentation/doc.go +4 -0
  537. package/templates/architectures/layered/files/pyproject.toml +2 -0
  538. package/templates/architectures/layered/files/scripts/check-layers.mjs +125 -0
  539. package/templates/architectures/layered/files/src/__solutionName.dot__.Business/AssemblyMarker.cs +7 -0
  540. package/templates/architectures/layered/files/src/__solutionName.dot__.Business/__solutionName.dot__.Business.csproj +15 -0
  541. package/templates/architectures/layered/files/src/__solutionName.dot__.Data/AssemblyMarker.cs +7 -0
  542. package/templates/architectures/layered/files/src/__solutionName.dot__.Data/__solutionName.dot__.Data.csproj +10 -0
  543. package/templates/architectures/layered/files/src/__solutionName.snake__/business/__init__.py +1 -0
  544. package/templates/architectures/layered/files/src/__solutionName.snake__/data/__init__.py +1 -0
  545. package/templates/architectures/layered/files/src/__solutionName.snake__/presentation/__init__.py +1 -0
  546. package/templates/architectures/layered/files/src/business/README.md +1 -0
  547. package/templates/architectures/layered/files/src/data/README.md +1 -0
  548. package/templates/architectures/layered/files/src/presentation/README.md +1 -0
  549. package/templates/architectures/layered/files/src/shared/README.md +1 -0
  550. package/templates/architectures/layered/files/tests/__solutionName.dot__.ArchitectureTests/LayerBoundaryTests.cs +151 -0
  551. package/templates/architectures/layered/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +27 -0
  552. package/templates/architectures/llm-workflow/blueprint.yaml +129 -0
  553. package/templates/architectures/llm-workflow/files/.importlinter +34 -0
  554. package/templates/architectures/llm-workflow/files/__promptsDir__/README.md +26 -0
  555. package/templates/architectures/llm-workflow/files/__promptsDir__/__firstStep.kebab__/__promptVersion__.md +7 -0
  556. package/templates/architectures/llm-workflow/files/docs/architecture/llm-workflow.python.md +133 -0
  557. package/templates/architectures/llm-workflow/files/docs/architecture/llm-workflow.typescript.md +124 -0
  558. package/templates/architectures/llm-workflow/files/package.json +9 -0
  559. package/templates/architectures/llm-workflow/files/scripts/check-llm-workflow.mjs +200 -0
  560. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/__init__.py +5 -0
  561. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/chains/__init__.py +5 -0
  562. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/chains/__workflowName.snake__.py +19 -0
  563. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/__init__.py +1 -0
  564. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/assertions.py +82 -0
  565. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/goldens.jsonl +4 -0
  566. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/runner.py +64 -0
  567. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/parallel/__init__.py +5 -0
  568. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/parallel/gather.py +28 -0
  569. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/ports/__init__.py +38 -0
  570. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/ports/llm.py +41 -0
  571. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/ports/stub.py +27 -0
  572. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/prompts.py +22 -0
  573. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/routing/__init__.py +5 -0
  574. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/routing/route.py +47 -0
  575. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/settings.py +60 -0
  576. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/steps/__firstStep.snake__.py +24 -0
  577. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/steps/__init__.py +6 -0
  578. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/steps/normalize.py +11 -0
  579. package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/types.py +40 -0
  580. package/templates/architectures/llm-workflow/files/src/workflow/chains/__workflowName.kebab__.ts +14 -0
  581. package/templates/architectures/llm-workflow/files/src/workflow/evals/assert.ts +59 -0
  582. package/templates/architectures/llm-workflow/files/src/workflow/evals/goldens.jsonl +4 -0
  583. package/templates/architectures/llm-workflow/files/src/workflow/evals/run.ts +60 -0
  584. package/templates/architectures/llm-workflow/files/src/workflow/parallel/gather.ts +25 -0
  585. package/templates/architectures/llm-workflow/files/src/workflow/ports/index.ts +34 -0
  586. package/templates/architectures/llm-workflow/files/src/workflow/ports/llm.ts +33 -0
  587. package/templates/architectures/llm-workflow/files/src/workflow/ports/stub.ts +23 -0
  588. package/templates/architectures/llm-workflow/files/src/workflow/prompts.ts +27 -0
  589. package/templates/architectures/llm-workflow/files/src/workflow/routing/route.ts +38 -0
  590. package/templates/architectures/llm-workflow/files/src/workflow/settings.ts +44 -0
  591. package/templates/architectures/llm-workflow/files/src/workflow/steps/__firstStep.kebab__.ts +19 -0
  592. package/templates/architectures/llm-workflow/files/src/workflow/steps/index.ts +3 -0
  593. package/templates/architectures/llm-workflow/files/src/workflow/steps/normalize.ts +8 -0
  594. package/templates/architectures/llm-workflow/files/src/workflow/types.ts +29 -0
  595. package/templates/architectures/llm-workflow/files/tests/test_workflow_boundaries.py +171 -0
  596. package/templates/architectures/llm-workflow/files/tests/test_workflow_goldens.py +30 -0
  597. package/templates/architectures/medallion/blueprint.yaml +91 -0
  598. package/templates/architectures/medallion/files/.importlinter +31 -0
  599. package/templates/architectures/medallion/files/contracts/bronze.contract.toml +16 -0
  600. package/templates/architectures/medallion/files/contracts/gold.contract.toml +21 -0
  601. package/templates/architectures/medallion/files/contracts/silver.contract.toml +31 -0
  602. package/templates/architectures/medallion/files/docs/architecture/medallion.python.md +104 -0
  603. package/templates/architectures/medallion/files/pyproject.toml +2 -0
  604. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/__init__.py +5 -0
  605. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/bronze/__init__.py +5 -0
  606. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/bronze/ingest.py +41 -0
  607. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/config.py +48 -0
  608. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/contracts.py +166 -0
  609. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/gold/__init__.py +5 -0
  610. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/gold/aggregate.py +40 -0
  611. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/io.py +28 -0
  612. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/run.py +40 -0
  613. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/silver/__init__.py +6 -0
  614. package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/silver/conform.py +53 -0
  615. package/templates/architectures/medallion/files/tests/architecture/test_layer_contracts.py +72 -0
  616. package/templates/architectures/medallion/files/tests/architecture/test_medallion_boundaries.py +166 -0
  617. package/templates/architectures/micro-frontends/blueprint.yaml +124 -0
  618. package/templates/architectures/micro-frontends/files/apps/host/package.json +10 -0
  619. package/templates/architectures/micro-frontends/files/apps/host/remotes.example.json +9 -0
  620. package/templates/architectures/micro-frontends/files/apps/host/src/config.ts +34 -0
  621. package/templates/architectures/micro-frontends/files/apps/host/src/loaders/import-map.ts +34 -0
  622. package/templates/architectures/micro-frontends/files/apps/host/src/loaders/module-federation.ts +29 -0
  623. package/templates/architectures/micro-frontends/files/apps/host/src/remote-loader.ts +45 -0
  624. package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/module-federation.config.mjs +19 -0
  625. package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/package.json +15 -0
  626. package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/src/config.ts +28 -0
  627. package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/src/index.ts +5 -0
  628. package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/src/mount.ts +32 -0
  629. package/templates/architectures/micro-frontends/files/docs/architecture/micro-frontends.md +161 -0
  630. package/templates/architectures/micro-frontends/files/package.json +14 -0
  631. package/templates/architectures/micro-frontends/files/packages/design-system/README.md +27 -0
  632. package/templates/architectures/micro-frontends/files/packages/design-system/package.json +11 -0
  633. package/templates/architectures/micro-frontends/files/packages/design-system/src/index.ts +10 -0
  634. package/templates/architectures/micro-frontends/files/packages/design-system/src/tokens.ts +20 -0
  635. package/templates/architectures/micro-frontends/files/packages/host-contract/package.json +11 -0
  636. package/templates/architectures/micro-frontends/files/packages/host-contract/src/index.ts +18 -0
  637. package/templates/architectures/micro-frontends/files/scripts/check-mfe-boundaries.mjs +199 -0
  638. package/templates/architectures/microservices/blueprint.yaml +160 -0
  639. package/templates/architectures/microservices/files/.importlinter +22 -0
  640. package/templates/architectures/microservices/files/Directory.Packages.props +8 -0
  641. package/templates/architectures/microservices/files/__solutionName.dot__.slnx +9 -0
  642. package/templates/architectures/microservices/files/contracts/__firstService.kebab__/package.json +8 -0
  643. package/templates/architectures/microservices/files/contracts/__firstService.kebab__/src/index.ts +32 -0
  644. package/templates/architectures/microservices/files/contracts/__firstService.lower__/contract.go +35 -0
  645. package/templates/architectures/microservices/files/contracts/__solutionName.pascal__.Contracts.__firstService.pascal__/__firstService.pascal__Contract.cs +26 -0
  646. package/templates/architectures/microservices/files/contracts/__solutionName.pascal__.Contracts.__firstService.pascal__/__solutionName.pascal__.Contracts.__firstService.pascal__.csproj +11 -0
  647. package/templates/architectures/microservices/files/deploy/__firstService.kebab__/Dockerfile +16 -0
  648. package/templates/architectures/microservices/files/docs/architecture/microservices.dotnet.md +91 -0
  649. package/templates/architectures/microservices/files/docs/architecture/microservices.go.md +77 -0
  650. package/templates/architectures/microservices/files/docs/architecture/microservices.node.md +88 -0
  651. package/templates/architectures/microservices/files/docs/architecture/microservices.python.md +92 -0
  652. package/templates/architectures/microservices/files/internal/architecture/boundary_test.go +139 -0
  653. package/templates/architectures/microservices/files/package.json +9 -0
  654. package/templates/architectures/microservices/files/pyproject.toml +2 -0
  655. package/templates/architectures/microservices/files/scripts/check-service-boundaries.mjs +200 -0
  656. package/templates/architectures/microservices/files/services/__firstService.kebab__/Dockerfile +19 -0
  657. package/templates/architectures/microservices/files/services/__firstService.kebab__/package.json +9 -0
  658. package/templates/architectures/microservices/files/services/__firstService.kebab__/src/config.ts +50 -0
  659. package/templates/architectures/microservices/files/services/__firstService.kebab__/src/index.ts +26 -0
  660. package/templates/architectures/microservices/files/services/__firstService.lower__/Dockerfile +18 -0
  661. package/templates/architectures/microservices/files/services/__firstService.lower__/internal/config/config.go +45 -0
  662. package/templates/architectures/microservices/files/services/__firstService.lower__/main.go +23 -0
  663. package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/Dockerfile +17 -0
  664. package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/ServiceAssemblyMarker.cs +10 -0
  665. package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/ServiceOptions.cs +28 -0
  666. package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/__solutionName.pascal__.Services.__firstService.pascal__.csproj +14 -0
  667. package/templates/architectures/microservices/files/src/__solutionName.snake__/contracts/__firstService.snake__/__init__.py +42 -0
  668. package/templates/architectures/microservices/files/src/__solutionName.snake__/contracts/__init__.py +5 -0
  669. package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__firstService.snake__/__init__.py +5 -0
  670. package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__firstService.snake__/config.py +54 -0
  671. package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__firstService.snake__/service.py +21 -0
  672. package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__init__.py +5 -0
  673. package/templates/architectures/microservices/files/tests/ArchitectureTests/ArchitectureTests.csproj +29 -0
  674. package/templates/architectures/microservices/files/tests/ArchitectureTests/ServiceBoundaryTests.cs +102 -0
  675. package/templates/architectures/microservices/files/tests/architecture/test_service_boundaries.py +120 -0
  676. package/templates/architectures/modular-monolith/blueprint.yaml +111 -0
  677. package/templates/architectures/modular-monolith/files/.importlinter +22 -0
  678. package/templates/architectures/modular-monolith/files/Directory.Packages.props +9 -0
  679. package/templates/architectures/modular-monolith/files/__solutionName.dot__.slnx +9 -0
  680. package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.dotnet.md +54 -0
  681. package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.go.md +50 -0
  682. package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.node.md +56 -0
  683. package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.python.md +54 -0
  684. package/templates/architectures/modular-monolith/files/internal/architecture/boundary_test.go +151 -0
  685. package/templates/architectures/modular-monolith/files/internal/modules/__moduleName.lower__/__moduleName.lower__.go +56 -0
  686. package/templates/architectures/modular-monolith/files/internal/modules/__moduleName.lower__/internal/store/store.go +12 -0
  687. package/templates/architectures/modular-monolith/files/internal/shared/events/bus.go +60 -0
  688. package/templates/architectures/modular-monolith/files/scripts/check-module-boundaries.mjs +185 -0
  689. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Api/I__moduleName.pascal__Module.cs +14 -0
  690. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Api/__moduleName.pascal__Events.cs +6 -0
  691. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Api/__moduleName.pascal__ModuleRegistration.cs +18 -0
  692. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Internal/__moduleName.pascal__Service.cs +19 -0
  693. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/__solutionName.dot__.Modules.__moduleName.pascal__.csproj +16 -0
  694. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/EventBusRegistration.cs +14 -0
  695. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/IEventBus.cs +15 -0
  696. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/IIntegrationEvent.cs +8 -0
  697. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/InProcessEventBus.cs +23 -0
  698. package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/__solutionName.dot__.SharedKernel.csproj +12 -0
  699. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__init__.py +1 -0
  700. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/__init__.py +1 -0
  701. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/api/__init__.py +15 -0
  702. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/api/contracts.py +27 -0
  703. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/api/factory.py +11 -0
  704. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/internal/__init__.py +1 -0
  705. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/internal/service.py +20 -0
  706. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/shared/__init__.py +1 -0
  707. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/shared/events/__init__.py +3 -0
  708. package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/shared/events/bus.py +43 -0
  709. package/templates/architectures/modular-monolith/files/src/modules/__moduleName.kebab__/api/contracts.ts +19 -0
  710. package/templates/architectures/modular-monolith/files/src/modules/__moduleName.kebab__/api/index.ts +18 -0
  711. package/templates/architectures/modular-monolith/files/src/modules/__moduleName.kebab__/internal/__moduleName.kebab__.service.ts +24 -0
  712. package/templates/architectures/modular-monolith/files/src/shared/events/event-bus.ts +34 -0
  713. package/templates/architectures/modular-monolith/files/src/shared/events/index.ts +2 -0
  714. package/templates/architectures/modular-monolith/files/tests/__solutionName.dot__.ArchitectureTests/ModuleBoundaryTests.cs +102 -0
  715. package/templates/architectures/modular-monolith/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +30 -0
  716. package/templates/architectures/modular-monolith/files/tests/architecture/test_module_boundaries.py +114 -0
  717. package/templates/architectures/monolith/blueprint.yaml +141 -0
  718. package/templates/architectures/monolith/files/.importlinter +14 -0
  719. package/templates/architectures/monolith/files/Directory.Packages.props +8 -0
  720. package/templates/architectures/monolith/files/__solutionName.dot__.slnx +5 -0
  721. package/templates/architectures/monolith/files/docs/architecture/monolith.dotnet.md +78 -0
  722. package/templates/architectures/monolith/files/docs/architecture/monolith.go.md +69 -0
  723. package/templates/architectures/monolith/files/docs/architecture/monolith.node.md +70 -0
  724. package/templates/architectures/monolith/files/docs/architecture/monolith.python.md +71 -0
  725. package/templates/architectures/monolith/files/internal/architecture/boundary_test.go +141 -0
  726. package/templates/architectures/monolith/files/internal/features/__featureName.lower__/__featureName.lower__.go +37 -0
  727. package/templates/architectures/monolith/files/internal/features/__featureName.lower__/internal/store/store.go +14 -0
  728. package/templates/architectures/monolith/files/internal/features/features.go +18 -0
  729. package/templates/architectures/monolith/files/internal/shared/apperr/apperr.go +17 -0
  730. package/templates/architectures/monolith/files/pyproject.toml +2 -0
  731. package/templates/architectures/monolith/files/scripts/check-monolith-boundaries.mjs +187 -0
  732. package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Features/__featureName.pascal__/Internal/__featureName.pascal__Service.cs +12 -0
  733. package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Features/__featureName.pascal__/__featureName.pascal__Feature.cs +13 -0
  734. package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Features/__featureName.pascal__/__featureName.pascal__Registration.cs +13 -0
  735. package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Kernel/AppException.cs +30 -0
  736. package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Features/__featureName.pascal__/Internal/__featureName.pascal__Service.cs +12 -0
  737. package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Features/__featureName.pascal__/__featureName.pascal__Feature.cs +13 -0
  738. package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Features/__featureName.pascal__/__featureName.pascal__Registration.cs +13 -0
  739. package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Kernel/AppException.cs +30 -0
  740. package/templates/architectures/monolith/files/src/__solutionName.snake__/features/__featureName.snake__/__init__.py +31 -0
  741. package/templates/architectures/monolith/files/src/__solutionName.snake__/features/__featureName.snake__/service.py +22 -0
  742. package/templates/architectures/monolith/files/src/__solutionName.snake__/features/__init__.py +14 -0
  743. package/templates/architectures/monolith/files/src/__solutionName.snake__/shared/__init__.py +11 -0
  744. package/templates/architectures/monolith/files/src/__solutionName.snake__/shared/errors.py +13 -0
  745. package/templates/architectures/monolith/files/src/features/__featureName.kebab__/__featureName.kebab__.service.ts +15 -0
  746. package/templates/architectures/monolith/files/src/features/__featureName.kebab__/index.ts +20 -0
  747. package/templates/architectures/monolith/files/src/features/index.ts +11 -0
  748. package/templates/architectures/monolith/files/src/shared/errors.ts +13 -0
  749. package/templates/architectures/monolith/files/src/shared/index.ts +7 -0
  750. package/templates/architectures/monolith/files/tests/ArchitectureTests/ArchitectureTests.csproj +32 -0
  751. package/templates/architectures/monolith/files/tests/ArchitectureTests/FeatureBoundaryTests.cs +129 -0
  752. package/templates/architectures/monolith/files/tests/architecture/test_monolith_boundaries.py +136 -0
  753. package/templates/architectures/multi-agent/blueprint.yaml +97 -0
  754. package/templates/architectures/multi-agent/files/.importlinter +36 -0
  755. package/templates/architectures/multi-agent/files/docs/architecture/multi-agent.node.md +110 -0
  756. package/templates/architectures/multi-agent/files/docs/architecture/multi-agent.python.md +94 -0
  757. package/templates/architectures/multi-agent/files/docs/architecture/multi-agent.typescript.md +102 -0
  758. package/templates/architectures/multi-agent/files/pyproject.toml +2 -0
  759. package/templates/architectures/multi-agent/files/scripts/check-agent-boundaries.mjs +207 -0
  760. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/__init__.py +5 -0
  761. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/config.py +52 -0
  762. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/contracts.py +62 -0
  763. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/__init__.py +9 -0
  764. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/budget.py +45 -0
  765. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/fanout.py +63 -0
  766. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/lead.py +92 -0
  767. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/runtime/__init__.py +5 -0
  768. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/runtime/runner.py +48 -0
  769. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__init__.py +27 -0
  770. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__workerName.snake__/__init__.py +9 -0
  771. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__workerName.snake__/prompt.py +31 -0
  772. package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__workerName.snake__/worker.py +28 -0
  773. package/templates/architectures/multi-agent/files/src/agents/config.ts +46 -0
  774. package/templates/architectures/multi-agent/files/src/agents/contracts/index.ts +4 -0
  775. package/templates/architectures/multi-agent/files/src/agents/contracts/result.ts +50 -0
  776. package/templates/architectures/multi-agent/files/src/agents/contracts/task.ts +19 -0
  777. package/templates/architectures/multi-agent/files/src/agents/orchestrator/budget.ts +51 -0
  778. package/templates/architectures/multi-agent/files/src/agents/orchestrator/fanout.ts +67 -0
  779. package/templates/architectures/multi-agent/files/src/agents/orchestrator/index.ts +4 -0
  780. package/templates/architectures/multi-agent/files/src/agents/orchestrator/lead.ts +77 -0
  781. package/templates/architectures/multi-agent/files/src/agents/runtime/index.ts +3 -0
  782. package/templates/architectures/multi-agent/files/src/agents/runtime/runner.ts +36 -0
  783. package/templates/architectures/multi-agent/files/src/agents/workers/README.md +13 -0
  784. package/templates/architectures/multi-agent/files/src/agents/workers/__workerName.kebab__/prompt.ts +22 -0
  785. package/templates/architectures/multi-agent/files/src/agents/workers/__workerName.kebab__/worker.ts +25 -0
  786. package/templates/architectures/multi-agent/files/src/agents/workers/index.ts +15 -0
  787. package/templates/architectures/multi-agent/files/tests/architecture/test_agent_boundaries.py +184 -0
  788. package/templates/architectures/mvc-mvvm/blueprint.yaml +156 -0
  789. package/templates/architectures/mvc-mvvm/files/.importlinter +25 -0
  790. package/templates/architectures/mvc-mvvm/files/Directory.Packages.props +8 -0
  791. package/templates/architectures/mvc-mvvm/files/__solutionName.dot__.slnx +8 -0
  792. package/templates/architectures/mvc-mvvm/files/docs/architecture/mvc-mvvm.dotnet.md +84 -0
  793. package/templates/architectures/mvc-mvvm/files/docs/architecture/mvc-mvvm.python.md +69 -0
  794. package/templates/architectures/mvc-mvvm/files/docs/architecture/mvc-mvvm.typescript.md +85 -0
  795. package/templates/architectures/mvc-mvvm/files/scripts/check-mvvm-boundaries.mjs +234 -0
  796. package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/Models/__firstScreen.pascal__.cs +8 -0
  797. package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/ViewModels/RelayCommand.cs +18 -0
  798. package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/ViewModels/ViewModelBase.cs +27 -0
  799. package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/ViewModels/__firstScreen.pascal__ViewModel.cs +55 -0
  800. package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/Views/README.md +12 -0
  801. package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/__solutionName.dot__.Presentation.csproj +11 -0
  802. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/controllers/__firstScreen.snake___controller.py +17 -0
  803. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/controllers/__init__.py +5 -0
  804. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/models/__firstScreen.snake__.py +13 -0
  805. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/models/__init__.py +5 -0
  806. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/models/repository.py +17 -0
  807. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/views/__firstScreen.snake___view.py +17 -0
  808. package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/views/__init__.py +6 -0
  809. package/templates/architectures/mvc-mvvm/files/src/models/index.ts +4 -0
  810. package/templates/architectures/mvc-mvvm/files/src/viewmodels/index.ts +12 -0
  811. package/templates/architectures/mvc-mvvm/files/src/views/index.ts +10 -0
  812. package/templates/architectures/mvc-mvvm/files/tests/__solutionName.dot__.ArchitectureTests/PresentationBoundaryTests.cs +124 -0
  813. package/templates/architectures/mvc-mvvm/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +28 -0
  814. package/templates/architectures/mvc-mvvm/files/tests/test_presentation_boundaries.py +33 -0
  815. package/templates/architectures/onion/blueprint.yaml +146 -0
  816. package/templates/architectures/onion/files/.dependency-cruiser.cjs +50 -0
  817. package/templates/architectures/onion/files/.importlinter +33 -0
  818. package/templates/architectures/onion/files/Directory.Packages.props +8 -0
  819. package/templates/architectures/onion/files/__solutionName.dot__.slnx +11 -0
  820. package/templates/architectures/onion/files/docs/architecture/onion-dotnet.md +39 -0
  821. package/templates/architectures/onion/files/docs/architecture/onion-go.md +33 -0
  822. package/templates/architectures/onion/files/docs/architecture/onion-python.md +35 -0
  823. package/templates/architectures/onion/files/docs/architecture/onion-typescript.md +34 -0
  824. package/templates/architectures/onion/files/internal/applicationservices/doc.go +4 -0
  825. package/templates/architectures/onion/files/internal/arch/rings.go +11 -0
  826. package/templates/architectures/onion/files/internal/arch/rings_test.go +112 -0
  827. package/templates/architectures/onion/files/internal/domain/doc.go +4 -0
  828. package/templates/architectures/onion/files/internal/domainservices/doc.go +5 -0
  829. package/templates/architectures/onion/files/internal/infrastructure/doc.go +5 -0
  830. package/templates/architectures/onion/files/pyproject.toml +2 -0
  831. package/templates/architectures/onion/files/src/__solutionName.dot__.ApplicationServices/ApplicationServicesAssemblyMarker.cs +4 -0
  832. package/templates/architectures/onion/files/src/__solutionName.dot__.ApplicationServices/__solutionName.dot__.ApplicationServices.csproj +13 -0
  833. package/templates/architectures/onion/files/src/__solutionName.dot__.Domain/DomainAssemblyMarker.cs +4 -0
  834. package/templates/architectures/onion/files/src/__solutionName.dot__.Domain/__solutionName.dot__.Domain.csproj +11 -0
  835. package/templates/architectures/onion/files/src/__solutionName.dot__.DomainServices/DomainServicesAssemblyMarker.cs +4 -0
  836. package/templates/architectures/onion/files/src/__solutionName.dot__.DomainServices/Repositories/.gitkeep +2 -0
  837. package/templates/architectures/onion/files/src/__solutionName.dot__.DomainServices/__solutionName.dot__.DomainServices.csproj +14 -0
  838. package/templates/architectures/onion/files/src/__solutionName.dot__.Infrastructure/InfrastructureAssemblyMarker.cs +4 -0
  839. package/templates/architectures/onion/files/src/__solutionName.dot__.Infrastructure/Repositories/.gitkeep +2 -0
  840. package/templates/architectures/onion/files/src/__solutionName.dot__.Infrastructure/__solutionName.dot__.Infrastructure.csproj +14 -0
  841. package/templates/architectures/onion/files/src/__solutionName.snake__/application_services/__init__.py +4 -0
  842. package/templates/architectures/onion/files/src/__solutionName.snake__/domain/__init__.py +5 -0
  843. package/templates/architectures/onion/files/src/__solutionName.snake__/domain_services/__init__.py +6 -0
  844. package/templates/architectures/onion/files/src/__solutionName.snake__/infrastructure/__init__.py +5 -0
  845. package/templates/architectures/onion/files/src/application-services/index.ts +3 -0
  846. package/templates/architectures/onion/files/src/domain/index.ts +3 -0
  847. package/templates/architectures/onion/files/src/domain-services/index.ts +3 -0
  848. package/templates/architectures/onion/files/src/infrastructure/index.ts +3 -0
  849. package/templates/architectures/onion/files/tests/__solutionName.dot__.ArchitectureTests/RingDependencyTests.cs +104 -0
  850. package/templates/architectures/onion/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +31 -0
  851. package/templates/architectures/pipes-and-filters/blueprint.yaml +104 -0
  852. package/templates/architectures/pipes-and-filters/files/.importlinter +25 -0
  853. package/templates/architectures/pipes-and-filters/files/docs/architecture/pipes-and-filters.go.md +72 -0
  854. package/templates/architectures/pipes-and-filters/files/docs/architecture/pipes-and-filters.node.md +73 -0
  855. package/templates/architectures/pipes-and-filters/files/docs/architecture/pipes-and-filters.python.md +76 -0
  856. package/templates/architectures/pipes-and-filters/files/internal/pipeline/boundary_test.go +107 -0
  857. package/templates/architectures/pipes-and-filters/files/internal/pipeline/config.go +53 -0
  858. package/templates/architectures/pipes-and-filters/files/internal/pipeline/contract/contract.go +35 -0
  859. package/templates/architectures/pipes-and-filters/files/internal/pipeline/pipeline.go +39 -0
  860. package/templates/architectures/pipes-and-filters/files/internal/pipeline/stages/__firstStage.lower__/__firstStage.lower__.go +42 -0
  861. package/templates/architectures/pipes-and-filters/files/internal/pipeline/stages/__firstStage.lower__/__firstStage.lower___test.go +59 -0
  862. package/templates/architectures/pipes-and-filters/files/package.json +8 -0
  863. package/templates/architectures/pipes-and-filters/files/pyproject.toml +2 -0
  864. package/templates/architectures/pipes-and-filters/files/scripts/check-stage-boundaries.mjs +172 -0
  865. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/__init__.py +16 -0
  866. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/config.py +26 -0
  867. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/contract.py +34 -0
  868. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/pipeline.py +33 -0
  869. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/stages/__firstStage.snake__/__init__.py +3 -0
  870. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/stages/__firstStage.snake__/stage.py +31 -0
  871. package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/stages/__init__.py +1 -0
  872. package/templates/architectures/pipes-and-filters/files/src/pipeline/config.ts +24 -0
  873. package/templates/architectures/pipes-and-filters/files/src/pipeline/contract.ts +41 -0
  874. package/templates/architectures/pipes-and-filters/files/src/pipeline/pipeline.ts +37 -0
  875. package/templates/architectures/pipes-and-filters/files/src/pipeline/stages/__firstStage.kebab__/__firstStage.kebab__.test.ts +32 -0
  876. package/templates/architectures/pipes-and-filters/files/src/pipeline/stages/__firstStage.kebab__/index.ts +29 -0
  877. package/templates/architectures/pipes-and-filters/files/tests/architecture/test_stage_boundaries.py +127 -0
  878. package/templates/architectures/pipes-and-filters/files/tests/pipeline/test___firstStage.snake__.py +32 -0
  879. package/templates/architectures/rag-hybrid/blueprint.yaml +121 -0
  880. package/templates/architectures/rag-hybrid/files/.importlinter +42 -0
  881. package/templates/architectures/rag-hybrid/files/docs/architecture/rag-hybrid.node.md +159 -0
  882. package/templates/architectures/rag-hybrid/files/docs/architecture/rag-hybrid.python.md +157 -0
  883. package/templates/architectures/rag-hybrid/files/evals/corpus/chunking.md +20 -0
  884. package/templates/architectures/rag-hybrid/files/evals/corpus/fusion.md +17 -0
  885. package/templates/architectures/rag-hybrid/files/evals/corpus/hybrid-retrieval.md +21 -0
  886. package/templates/architectures/rag-hybrid/files/evals/corpus/reranking.md +17 -0
  887. package/templates/architectures/rag-hybrid/files/evals/golden/queries.jsonl +5 -0
  888. package/templates/architectures/rag-hybrid/files/package.json +9 -0
  889. package/templates/architectures/rag-hybrid/files/pyproject.toml +2 -0
  890. package/templates/architectures/rag-hybrid/files/scripts/check-retrieval-seam.mjs +156 -0
  891. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/__init__.py +23 -0
  892. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/chunk/__init__.py +57 -0
  893. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/config.py +101 -0
  894. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/contracts.py +58 -0
  895. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/embed/__init__.py +90 -0
  896. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/__init__.py +11 -0
  897. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/cli.py +47 -0
  898. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/harness.py +115 -0
  899. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/metrics.py +51 -0
  900. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/generate/__init__.py +85 -0
  901. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/indexing.py +23 -0
  902. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/ingest/__init__.py +45 -0
  903. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/pipeline.py +27 -0
  904. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/rerank/__init__.py +85 -0
  905. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/__init__.py +37 -0
  906. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/dense.py +25 -0
  907. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/fusion.py +30 -0
  908. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/keyword.py +45 -0
  909. package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/store/__init__.py +87 -0
  910. package/templates/architectures/rag-hybrid/files/src/rag/chunk/index.ts +56 -0
  911. package/templates/architectures/rag-hybrid/files/src/rag/config.ts +96 -0
  912. package/templates/architectures/rag-hybrid/files/src/rag/contracts.ts +50 -0
  913. package/templates/architectures/rag-hybrid/files/src/rag/embed/index.ts +98 -0
  914. package/templates/architectures/rag-hybrid/files/src/rag/evaluation/cli.ts +47 -0
  915. package/templates/architectures/rag-hybrid/files/src/rag/evaluation/harness.ts +101 -0
  916. package/templates/architectures/rag-hybrid/files/src/rag/evaluation/metrics.ts +40 -0
  917. package/templates/architectures/rag-hybrid/files/src/rag/generate/index.ts +86 -0
  918. package/templates/architectures/rag-hybrid/files/src/rag/indexing.ts +21 -0
  919. package/templates/architectures/rag-hybrid/files/src/rag/ingest/index.ts +58 -0
  920. package/templates/architectures/rag-hybrid/files/src/rag/pipeline.ts +32 -0
  921. package/templates/architectures/rag-hybrid/files/src/rag/rerank/index.ts +90 -0
  922. package/templates/architectures/rag-hybrid/files/src/rag/retrieve/dense.ts +26 -0
  923. package/templates/architectures/rag-hybrid/files/src/rag/retrieve/fusion.ts +32 -0
  924. package/templates/architectures/rag-hybrid/files/src/rag/retrieve/index.ts +38 -0
  925. package/templates/architectures/rag-hybrid/files/src/rag/retrieve/keyword.ts +42 -0
  926. package/templates/architectures/rag-hybrid/files/src/rag/store/index.ts +108 -0
  927. package/templates/architectures/rag-hybrid/files/tests/architecture/test_retrieval_seam.py +108 -0
  928. package/templates/architectures/serverless/blueprint.yaml +139 -0
  929. package/templates/architectures/serverless/files/.gitignore.serverless +3 -0
  930. package/templates/architectures/serverless/files/.importlinter +18 -0
  931. package/templates/architectures/serverless/files/cdk.json +7 -0
  932. package/templates/architectures/serverless/files/docs/architecture/serverless.node.md +97 -0
  933. package/templates/architectures/serverless/files/docs/architecture/serverless.python.md +108 -0
  934. package/templates/architectures/serverless/files/events/__firstHandler.kebab__.json +21 -0
  935. package/templates/architectures/serverless/files/infra/app.ts +15 -0
  936. package/templates/architectures/serverless/files/infra/config.ts +22 -0
  937. package/templates/architectures/serverless/files/infra/stack.ts +45 -0
  938. package/templates/architectures/serverless/files/package.json +9 -0
  939. package/templates/architectures/serverless/files/pyproject.toml +2 -0
  940. package/templates/architectures/serverless/files/scripts/check-handler-boundaries.mjs +144 -0
  941. package/templates/architectures/serverless/files/scripts/invoke-local.ts +57 -0
  942. package/templates/architectures/serverless/files/scripts/invoke_local.py +61 -0
  943. package/templates/architectures/serverless/files/src/__solutionName.snake__/functions/__firstHandler.snake__/__init__.py +1 -0
  944. package/templates/architectures/serverless/files/src/__solutionName.snake__/functions/__firstHandler.snake__/handler.py +27 -0
  945. package/templates/architectures/serverless/files/src/__solutionName.snake__/functions/__init__.py +4 -0
  946. package/templates/architectures/serverless/files/src/__solutionName.snake__/layers/__init__.py +5 -0
  947. package/templates/architectures/serverless/files/src/__solutionName.snake__/layers/config.py +45 -0
  948. package/templates/architectures/serverless/files/src/__solutionName.snake__/layers/observability.py +35 -0
  949. package/templates/architectures/serverless/files/src/functions/__firstHandler.kebab__/handler.ts +26 -0
  950. package/templates/architectures/serverless/files/src/layers/config/index.ts +31 -0
  951. package/templates/architectures/serverless/files/src/layers/observability/index.ts +38 -0
  952. package/templates/architectures/serverless/files/src/requirements.txt +3 -0
  953. package/templates/architectures/serverless/files/template.yaml +48 -0
  954. package/templates/architectures/serverless/files/tests/architecture/test_handler_boundaries.py +32 -0
  955. package/templates/architectures/vertical-slice/blueprint.yaml +124 -0
  956. package/templates/architectures/vertical-slice/files/.importlinter +18 -0
  957. package/templates/architectures/vertical-slice/files/Directory.Packages.props +8 -0
  958. package/templates/architectures/vertical-slice/files/__solutionName.dot__.slnx +5 -0
  959. package/templates/architectures/vertical-slice/files/docs/architecture/vertical-slice.md +75 -0
  960. package/templates/architectures/vertical-slice/files/internal/features/__firstSlice.lower__/__firstSlice.lower__.go +2 -0
  961. package/templates/architectures/vertical-slice/files/internal/features/boundary_test.go +92 -0
  962. package/templates/architectures/vertical-slice/files/internal/features/doc.go +3 -0
  963. package/templates/architectures/vertical-slice/files/internal/shared/doc.go +2 -0
  964. package/templates/architectures/vertical-slice/files/pyproject.toml +2 -0
  965. package/templates/architectures/vertical-slice/files/scripts/check-slice-boundaries.mjs +118 -0
  966. package/templates/architectures/vertical-slice/files/src/__solutionName.dot__.Api/Common/.gitkeep +0 -0
  967. package/templates/architectures/vertical-slice/files/src/__solutionName.dot__.Api/Features/.gitkeep +0 -0
  968. package/templates/architectures/vertical-slice/files/src/__solutionName.dot__.Api/Features/__firstSlice.pascal__/Slice.cs +15 -0
  969. package/templates/architectures/vertical-slice/files/src/__solutionName.pascal__.Api/Common/.gitkeep +0 -0
  970. package/templates/architectures/vertical-slice/files/src/__solutionName.pascal__.Api/Features/.gitkeep +0 -0
  971. package/templates/architectures/vertical-slice/files/src/__solutionName.pascal__.Api/Features/__firstSlice.pascal__/Slice.cs +15 -0
  972. package/templates/architectures/vertical-slice/files/src/__solutionName.snake__/features/__firstSlice.snake__/__init__.py +1 -0
  973. package/templates/architectures/vertical-slice/files/src/__solutionName.snake__/features/__init__.py +1 -0
  974. package/templates/architectures/vertical-slice/files/src/__solutionName.snake__/shared/__init__.py +1 -0
  975. package/templates/architectures/vertical-slice/files/src/features/__firstSlice.kebab__/index.ts +3 -0
  976. package/templates/architectures/vertical-slice/files/src/shared/.gitkeep +0 -0
  977. package/templates/architectures/vertical-slice/files/tests/ArchitectureTests/ArchitectureTests.csproj +33 -0
  978. package/templates/architectures/vertical-slice/files/tests/ArchitectureTests/SliceBoundaryTests.cs +110 -0
  979. package/templates/architectures/vertical-slice/files/tests/test_architecture.py +32 -0
  980. package/templates/bases/dotnet-aspire/blueprint.yaml +120 -0
  981. package/templates/bases/dotnet-aspire/files/Directory.Build.props +11 -0
  982. package/templates/bases/dotnet-aspire/files/Directory.Packages.props +17 -0
  983. package/templates/bases/dotnet-aspire/files/README.md +60 -0
  984. package/templates/bases/dotnet-aspire/files/__solutionName.dot__.slnx +7 -0
  985. package/templates/bases/dotnet-aspire/files/aspire.config.json +5 -0
  986. package/templates/bases/dotnet-aspire/files/gitignore +44 -0
  987. package/templates/bases/dotnet-aspire/files/global.json +6 -0
  988. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/Configuration/ApiOptions.cs +20 -0
  989. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/Program.cs +37 -0
  990. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/Properties/launchSettings.json +23 -0
  991. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/__solutionName.pascal__.Api.csproj +11 -0
  992. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/appsettings.Development.json +8 -0
  993. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/appsettings.json +14 -0
  994. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/AppHost.cs +8 -0
  995. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/Properties/launchSettings.json +29 -0
  996. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/__solutionName.pascal__.AppHost.csproj +11 -0
  997. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/appsettings.Development.json +8 -0
  998. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/appsettings.json +9 -0
  999. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.ServiceDefaults/Extensions.cs +101 -0
  1000. package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.ServiceDefaults/__solutionName.pascal__.ServiceDefaults.csproj +19 -0
  1001. package/templates/bases/dotnet-webapi/blueprint.yaml +112 -0
  1002. package/templates/bases/dotnet-webapi/files/.editorconfig +78 -0
  1003. package/templates/bases/dotnet-webapi/files/Directory.Build.props +28 -0
  1004. package/templates/bases/dotnet-webapi/files/Directory.Packages.props +18 -0
  1005. package/templates/bases/dotnet-webapi/files/README.md +71 -0
  1006. package/templates/bases/dotnet-webapi/files/__solutionName.dot__.slnx +11 -0
  1007. package/templates/bases/dotnet-webapi/files/gitignore +49 -0
  1008. package/templates/bases/dotnet-webapi/files/global.json +7 -0
  1009. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Configuration/ApiOptions.cs +23 -0
  1010. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Configuration/ServiceCollectionExtensions.cs +35 -0
  1011. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Endpoints/GreetingEndpoints.cs +24 -0
  1012. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Endpoints/HealthEndpoints.cs +11 -0
  1013. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Program.cs +23 -0
  1014. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Properties/launchSettings.json +21 -0
  1015. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/__solutionName.dot__.Api.csproj +19 -0
  1016. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/appsettings.Development.json +8 -0
  1017. package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/appsettings.json +9 -0
  1018. package/templates/bases/fastapi-service/blueprint.yaml +87 -0
  1019. package/templates/bases/fastapi-service/files/.env.example +10 -0
  1020. package/templates/bases/fastapi-service/files/README.md +42 -0
  1021. package/templates/bases/fastapi-service/files/gitignore +27 -0
  1022. package/templates/bases/fastapi-service/files/pyproject.toml +35 -0
  1023. package/templates/bases/fastapi-service/files/src/__solutionName.snake__/__init__.py +1 -0
  1024. package/templates/bases/fastapi-service/files/src/__solutionName.snake__/api/__init__.py +1 -0
  1025. package/templates/bases/fastapi-service/files/src/__solutionName.snake__/api/routes.py +38 -0
  1026. package/templates/bases/fastapi-service/files/src/__solutionName.snake__/main.py +34 -0
  1027. package/templates/bases/fastapi-service/files/src/__solutionName.snake__/settings.py +30 -0
  1028. package/templates/bases/go-api/blueprint.yaml +58 -0
  1029. package/templates/bases/go-api/files/.env.example +16 -0
  1030. package/templates/bases/go-api/files/README.md +76 -0
  1031. package/templates/bases/go-api/files/cmd/__solutionName.kebab__/main.go +65 -0
  1032. package/templates/bases/go-api/files/gitignore +27 -0
  1033. package/templates/bases/go-api/files/go.mod +5 -0
  1034. package/templates/bases/go-api/files/internal/config/config.go +127 -0
  1035. package/templates/bases/go-api/files/internal/httpapi/greeting.go +25 -0
  1036. package/templates/bases/go-api/files/internal/httpapi/health.go +25 -0
  1037. package/templates/bases/go-api/files/internal/httpapi/respond.go +25 -0
  1038. package/templates/bases/go-api/files/internal/httpapi/router.go +63 -0
  1039. package/templates/bases/hono-api/blueprint.yaml +94 -0
  1040. package/templates/bases/hono-api/files/.env.example +7 -0
  1041. package/templates/bases/hono-api/files/README.md +77 -0
  1042. package/templates/bases/hono-api/files/biome.json +24 -0
  1043. package/templates/bases/hono-api/files/gitignore +16 -0
  1044. package/templates/bases/hono-api/files/package.json +29 -0
  1045. package/templates/bases/hono-api/files/src/app.ts +27 -0
  1046. package/templates/bases/hono-api/files/src/config.ts +27 -0
  1047. package/templates/bases/hono-api/files/src/index.ts +17 -0
  1048. package/templates/bases/hono-api/files/src/routes/greetings.ts +17 -0
  1049. package/templates/bases/hono-api/files/src/routes/health.ts +13 -0
  1050. package/templates/bases/hono-api/files/tsconfig.json +18 -0
  1051. package/templates/bases/nestjs-api/blueprint.yaml +94 -0
  1052. package/templates/bases/nestjs-api/files/.env.example +8 -0
  1053. package/templates/bases/nestjs-api/files/.prettierrc +5 -0
  1054. package/templates/bases/nestjs-api/files/README.md +69 -0
  1055. package/templates/bases/nestjs-api/files/eslint.config.mjs +23 -0
  1056. package/templates/bases/nestjs-api/files/gitignore +11 -0
  1057. package/templates/bases/nestjs-api/files/nest-cli.json +9 -0
  1058. package/templates/bases/nestjs-api/files/package.json +41 -0
  1059. package/templates/bases/nestjs-api/files/src/app.module.ts +16 -0
  1060. package/templates/bases/nestjs-api/files/src/config/app.config.ts +30 -0
  1061. package/templates/bases/nestjs-api/files/src/config/env.validation.ts +15 -0
  1062. package/templates/bases/nestjs-api/files/src/health/health.controller.ts +19 -0
  1063. package/templates/bases/nestjs-api/files/src/health/health.module.ts +6 -0
  1064. package/templates/bases/nestjs-api/files/src/main.ts +25 -0
  1065. package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/__solutionName.kebab__.controller.ts +14 -0
  1066. package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/__solutionName.kebab__.module.ts +11 -0
  1067. package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/__solutionName.kebab__.service.ts +12 -0
  1068. package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/dto/greet-query.dto.ts +10 -0
  1069. package/templates/bases/nestjs-api/files/tsconfig.build.json +4 -0
  1070. package/templates/bases/nestjs-api/files/tsconfig.json +26 -0
  1071. package/templates/bases/nextjs-app/blueprint.yaml +80 -0
  1072. package/templates/bases/nextjs-app/files/.env.example +10 -0
  1073. package/templates/bases/nextjs-app/files/README.md +48 -0
  1074. package/templates/bases/nextjs-app/files/eslint.config.mjs +12 -0
  1075. package/templates/bases/nextjs-app/files/gitignore +32 -0
  1076. package/templates/bases/nextjs-app/files/next.config.ts +8 -0
  1077. package/templates/bases/nextjs-app/files/package.json +30 -0
  1078. package/templates/bases/nextjs-app/files/postcss.config.mjs +7 -0
  1079. package/templates/bases/nextjs-app/files/src/app/api/health/route.ts +21 -0
  1080. package/templates/bases/nextjs-app/files/src/app/globals.css +45 -0
  1081. package/templates/bases/nextjs-app/files/src/app/layout.tsx +28 -0
  1082. package/templates/bases/nextjs-app/files/src/app/page.tsx +39 -0
  1083. package/templates/bases/nextjs-app/files/src/config/env.ts +64 -0
  1084. package/templates/bases/nextjs-app/files/tsconfig.json +35 -0
  1085. package/templates/bases/python-ai-agent/blueprint.yaml +84 -0
  1086. package/templates/bases/python-ai-agent/files/.env.example +29 -0
  1087. package/templates/bases/python-ai-agent/files/README.md +80 -0
  1088. package/templates/bases/python-ai-agent/files/gitignore +21 -0
  1089. package/templates/bases/python-ai-agent/files/pyproject.toml +34 -0
  1090. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/__init__.py +1 -0
  1091. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/api/__init__.py +1 -0
  1092. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/api/routes.py +69 -0
  1093. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/config.py +70 -0
  1094. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/__init__.py +1 -0
  1095. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/anthropic_provider.py +69 -0
  1096. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/openai_provider.py +75 -0
  1097. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/provider.py +45 -0
  1098. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/registry.py +35 -0
  1099. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/main.py +33 -0
  1100. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/observability/__init__.py +1 -0
  1101. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/observability/evals.py +28 -0
  1102. package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/observability/tracing.py +49 -0
  1103. package/templates/bases/react-vite-spa/blueprint.yaml +92 -0
  1104. package/templates/bases/react-vite-spa/files/.env.example +13 -0
  1105. package/templates/bases/react-vite-spa/files/README.md +49 -0
  1106. package/templates/bases/react-vite-spa/files/eslint.config.mjs +26 -0
  1107. package/templates/bases/react-vite-spa/files/gitignore +25 -0
  1108. package/templates/bases/react-vite-spa/files/index.html +13 -0
  1109. package/templates/bases/react-vite-spa/files/package.json +37 -0
  1110. package/templates/bases/react-vite-spa/files/src/api/client.ts +28 -0
  1111. package/templates/bases/react-vite-spa/files/src/api/health.ts +12 -0
  1112. package/templates/bases/react-vite-spa/files/src/app/query-client.ts +12 -0
  1113. package/templates/bases/react-vite-spa/files/src/app/root-layout.tsx +24 -0
  1114. package/templates/bases/react-vite-spa/files/src/app/router.tsx +44 -0
  1115. package/templates/bases/react-vite-spa/files/src/config/env.ts +37 -0
  1116. package/templates/bases/react-vite-spa/files/src/main.tsx +18 -0
  1117. package/templates/bases/react-vite-spa/files/src/pages/home-page.tsx +31 -0
  1118. package/templates/bases/react-vite-spa/files/src/pages/not-found-page.tsx +13 -0
  1119. package/templates/bases/react-vite-spa/files/src/pages/status-page.tsx +37 -0
  1120. package/templates/bases/react-vite-spa/files/src/styles/global.css +169 -0
  1121. package/templates/bases/react-vite-spa/files/src/vite-env.d.ts +15 -0
  1122. package/templates/bases/react-vite-spa/files/tsconfig.app.json +29 -0
  1123. package/templates/bases/react-vite-spa/files/tsconfig.json +4 -0
  1124. package/templates/bases/react-vite-spa/files/tsconfig.node.json +24 -0
  1125. package/templates/bases/react-vite-spa/files/vite.config.ts +25 -0
  1126. package/templates/bases/turborepo-monorepo/blueprint.yaml +84 -0
  1127. package/templates/bases/turborepo-monorepo/files/.env.example +7 -0
  1128. package/templates/bases/turborepo-monorepo/files/.prettierignore +9 -0
  1129. package/templates/bases/turborepo-monorepo/files/.prettierrc.json +5 -0
  1130. package/templates/bases/turborepo-monorepo/files/README.md +55 -0
  1131. package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/eslint.config.js +3 -0
  1132. package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/package.json +25 -0
  1133. package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/src/config.ts +46 -0
  1134. package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/src/index.ts +20 -0
  1135. package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/src/router.ts +24 -0
  1136. package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/tsconfig.json +8 -0
  1137. package/templates/bases/turborepo-monorepo/files/gitignore +17 -0
  1138. package/templates/bases/turborepo-monorepo/files/package.json +25 -0
  1139. package/templates/bases/turborepo-monorepo/files/packages/eslint-config/index.js +21 -0
  1140. package/templates/bases/turborepo-monorepo/files/packages/eslint-config/package.json +21 -0
  1141. package/templates/bases/turborepo-monorepo/files/packages/shared/eslint.config.js +3 -0
  1142. package/templates/bases/turborepo-monorepo/files/packages/shared/package.json +26 -0
  1143. package/templates/bases/turborepo-monorepo/files/packages/shared/src/health.ts +23 -0
  1144. package/templates/bases/turborepo-monorepo/files/packages/shared/src/index.ts +2 -0
  1145. package/templates/bases/turborepo-monorepo/files/packages/shared/tsconfig.json +10 -0
  1146. package/templates/bases/turborepo-monorepo/files/packages/tsconfig/base.json +19 -0
  1147. package/templates/bases/turborepo-monorepo/files/packages/tsconfig/node.json +7 -0
  1148. package/templates/bases/turborepo-monorepo/files/packages/tsconfig/package.json +9 -0
  1149. package/templates/bases/turborepo-monorepo/files/pnpm-workspace.yaml +7 -0
  1150. package/templates/bases/turborepo-monorepo/files/turbo.json +22 -0
  1151. package/templates/layers/api-versioning/blueprint.yaml +264 -0
  1152. package/templates/layers/api-versioning/files/.env.apiversion.example +53 -0
  1153. package/templates/layers/api-versioning/files/__apiVersionContractDir__/README.md +48 -0
  1154. package/templates/layers/api-versioning/files/__solutionName.dot__.slnx +5 -0
  1155. package/templates/layers/api-versioning/files/docs/api-versioning.md +100 -0
  1156. package/templates/layers/api-versioning/files/internal/apiversion/apiversion_test.go +202 -0
  1157. package/templates/layers/api-versioning/files/internal/apiversion/config.go +242 -0
  1158. package/templates/layers/api-versioning/files/internal/apiversion/contract.go +280 -0
  1159. package/templates/layers/api-versioning/files/internal/apiversion/headers.go +55 -0
  1160. package/templates/layers/api-versioning/files/internal/apiversion/middleware.go +53 -0
  1161. package/templates/layers/api-versioning/files/internal/apiversion/negotiate.go +107 -0
  1162. package/templates/layers/api-versioning/files/internal/apiversion/snapshot.go +72 -0
  1163. package/templates/layers/api-versioning/files/internal/apiversion/versions.go +72 -0
  1164. package/templates/layers/api-versioning/files/package.json +5 -0
  1165. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionHeaders.cs +62 -0
  1166. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionNegotiator.cs +129 -0
  1167. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionOptions.cs +58 -0
  1168. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionPolicy.cs +99 -0
  1169. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersioningMiddleware.cs +58 -0
  1170. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersioningServiceCollectionExtensions.cs +18 -0
  1171. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ContractDiff.cs +152 -0
  1172. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ContractShape.cs +142 -0
  1173. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ContractStore.cs +64 -0
  1174. package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/__solutionName.dot__.ApiVersioning.csproj +17 -0
  1175. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/__init__.py +67 -0
  1176. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/contract.py +191 -0
  1177. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/errors.py +28 -0
  1178. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/headers.py +56 -0
  1179. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/middleware.py +76 -0
  1180. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/negotiate.py +94 -0
  1181. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/settings.py +189 -0
  1182. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/snapshot.py +74 -0
  1183. package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/versions.py +70 -0
  1184. package/templates/layers/api-versioning/files/src/apiversion/client/pinned-fetch.ts +89 -0
  1185. package/templates/layers/api-versioning/files/src/apiversion/contract/diff.ts +153 -0
  1186. package/templates/layers/api-versioning/files/src/apiversion/contract/node/snapshot.ts +76 -0
  1187. package/templates/layers/api-versioning/files/src/apiversion/contract/shape.ts +94 -0
  1188. package/templates/layers/api-versioning/files/src/apiversion/errors.ts +36 -0
  1189. package/templates/layers/api-versioning/files/src/apiversion/headers.ts +52 -0
  1190. package/templates/layers/api-versioning/files/src/apiversion/index.ts +23 -0
  1191. package/templates/layers/api-versioning/files/src/apiversion/middleware.ts +59 -0
  1192. package/templates/layers/api-versioning/files/src/apiversion/negotiate.ts +113 -0
  1193. package/templates/layers/api-versioning/files/src/apiversion/node/http.ts +50 -0
  1194. package/templates/layers/api-versioning/files/src/apiversion/settings.ts +214 -0
  1195. package/templates/layers/api-versioning/files/src/apiversion/tests/apiversion.spec.ts +162 -0
  1196. package/templates/layers/api-versioning/files/src/apiversion/tests/apiversion.test.ts +167 -0
  1197. package/templates/layers/api-versioning/files/src/apiversion/versions.ts +66 -0
  1198. package/templates/layers/api-versioning/files/tests/test_api_versioning.py +162 -0
  1199. package/templates/layers/audit-log/blueprint.yaml +186 -0
  1200. package/templates/layers/audit-log/files/.env.audit.example +41 -0
  1201. package/templates/layers/audit-log/files/__solutionName.dot__.slnx +5 -0
  1202. package/templates/layers/audit-log/files/docs/audit-log.md +195 -0
  1203. package/templates/layers/audit-log/files/internal/audit/audit_test.go +141 -0
  1204. package/templates/layers/audit-log/files/internal/audit/chain.go +91 -0
  1205. package/templates/layers/audit-log/files/internal/audit/config.go +143 -0
  1206. package/templates/layers/audit-log/files/internal/audit/event.go +87 -0
  1207. package/templates/layers/audit-log/files/internal/audit/recorder.go +133 -0
  1208. package/templates/layers/audit-log/files/internal/audit/redact.go +83 -0
  1209. package/templates/layers/audit-log/files/internal/audit/sink.go +196 -0
  1210. package/templates/layers/audit-log/files/internal/audit/verify.go +17 -0
  1211. package/templates/layers/audit-log/files/package.json +5 -0
  1212. package/templates/layers/audit-log/files/pyproject.toml +2 -0
  1213. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditChain.cs +74 -0
  1214. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditEvent.cs +90 -0
  1215. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditOptions.cs +104 -0
  1216. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditRecorder.cs +106 -0
  1217. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditSerialization.cs +116 -0
  1218. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditSinks.cs +165 -0
  1219. package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/__solutionName.dot__.Auditing.csproj +17 -0
  1220. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/chain.py +56 -0
  1221. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/event.py +118 -0
  1222. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/recorder.py +118 -0
  1223. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/redact.py +41 -0
  1224. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/settings.py +102 -0
  1225. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/sinks.py +121 -0
  1226. package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/verify.py +14 -0
  1227. package/templates/layers/audit-log/files/src/audit/chain.ts +59 -0
  1228. package/templates/layers/audit-log/files/src/audit/event.ts +73 -0
  1229. package/templates/layers/audit-log/files/src/audit/index.ts +32 -0
  1230. package/templates/layers/audit-log/files/src/audit/recorder.ts +108 -0
  1231. package/templates/layers/audit-log/files/src/audit/redact.ts +54 -0
  1232. package/templates/layers/audit-log/files/src/audit/settings.ts +113 -0
  1233. package/templates/layers/audit-log/files/src/audit/sinks.ts +131 -0
  1234. package/templates/layers/audit-log/files/src/audit/tests/audit.spec.ts +97 -0
  1235. package/templates/layers/audit-log/files/src/audit/tests/audit.test.ts +103 -0
  1236. package/templates/layers/audit-log/files/tests/test_audit_log.py +91 -0
  1237. package/templates/layers/auth-jwt/blueprint.yaml +124 -0
  1238. package/templates/layers/auth-jwt/files/.env.auth.example +17 -0
  1239. package/templates/layers/auth-jwt/files/Directory.Packages.props +5 -0
  1240. package/templates/layers/auth-jwt/files/__solutionName.dot__.slnx +5 -0
  1241. package/templates/layers/auth-jwt/files/docs/auth-jwt.md +198 -0
  1242. package/templates/layers/auth-jwt/files/go.mod +2 -0
  1243. package/templates/layers/auth-jwt/files/internal/auth/auth_test.go +167 -0
  1244. package/templates/layers/auth-jwt/files/internal/auth/config.go +108 -0
  1245. package/templates/layers/auth-jwt/files/internal/auth/errors.go +21 -0
  1246. package/templates/layers/auth-jwt/files/internal/auth/http.go +65 -0
  1247. package/templates/layers/auth-jwt/files/internal/auth/password.go +76 -0
  1248. package/templates/layers/auth-jwt/files/internal/auth/service.go +213 -0
  1249. package/templates/layers/auth-jwt/files/internal/auth/store.go +138 -0
  1250. package/templates/layers/auth-jwt/files/internal/auth/token.go +83 -0
  1251. package/templates/layers/auth-jwt/files/package.json +9 -0
  1252. package/templates/layers/auth-jwt/files/pyproject.toml +2 -0
  1253. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthException.cs +39 -0
  1254. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthOptions.cs +35 -0
  1255. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthService.cs +132 -0
  1256. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthServiceCollectionExtensions.cs +48 -0
  1257. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/JwtTokenService.cs +84 -0
  1258. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/PasswordHasher.cs +52 -0
  1259. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/Stores.cs +100 -0
  1260. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/__solutionName.dot__.Auth.csproj +21 -0
  1261. package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/appsettings.Auth.sample.json +10 -0
  1262. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/__init__.py +42 -0
  1263. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/config.py +49 -0
  1264. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/errors.py +21 -0
  1265. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/http.py +36 -0
  1266. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/passwords.py +37 -0
  1267. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/service.py +139 -0
  1268. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/store.py +90 -0
  1269. package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/tokens.py +72 -0
  1270. package/templates/layers/auth-jwt/files/src/auth/config.ts +77 -0
  1271. package/templates/layers/auth-jwt/files/src/auth/errors.ts +32 -0
  1272. package/templates/layers/auth-jwt/files/src/auth/http.ts +35 -0
  1273. package/templates/layers/auth-jwt/files/src/auth/index.ts +20 -0
  1274. package/templates/layers/auth-jwt/files/src/auth/password.ts +23 -0
  1275. package/templates/layers/auth-jwt/files/src/auth/random.ts +28 -0
  1276. package/templates/layers/auth-jwt/files/src/auth/service.ts +125 -0
  1277. package/templates/layers/auth-jwt/files/src/auth/store.memory.ts +50 -0
  1278. package/templates/layers/auth-jwt/files/src/auth/store.ts +37 -0
  1279. package/templates/layers/auth-jwt/files/src/auth/tests/auth.spec.ts +98 -0
  1280. package/templates/layers/auth-jwt/files/src/auth/tests/auth.test.ts +102 -0
  1281. package/templates/layers/auth-jwt/files/src/auth/tokens.ts +56 -0
  1282. package/templates/layers/auth-jwt/files/tests/auth/test_auth.py +106 -0
  1283. package/templates/layers/auth-oidc/blueprint.yaml +89 -0
  1284. package/templates/layers/auth-oidc/files/dotnet/.env.oidc.example +14 -0
  1285. package/templates/layers/auth-oidc/files/dotnet/docs/auth-oidc.md +73 -0
  1286. package/templates/layers/auth-oidc/files/dotnet/src/__solutionName.pascal__.Api/Auth/OidcAuthenticationExtensions.cs +65 -0
  1287. package/templates/layers/auth-oidc/files/dotnet/src/__solutionName.pascal__.Api/Auth/OidcOptions.cs +25 -0
  1288. package/templates/layers/auth-oidc/files/dotnet/src/__solutionName.pascal__.Api/Auth/ScopeRequirement.cs +29 -0
  1289. package/templates/layers/auth-oidc/files/node/.env.oidc.example +14 -0
  1290. package/templates/layers/auth-oidc/files/node/docs/auth-oidc.md +66 -0
  1291. package/templates/layers/auth-oidc/files/node/src/auth/auth.config.ts +64 -0
  1292. package/templates/layers/auth-oidc/files/node/src/auth/auth.decorators.ts +19 -0
  1293. package/templates/layers/auth-oidc/files/node/src/auth/auth.guard.ts +61 -0
  1294. package/templates/layers/auth-oidc/files/node/src/auth/auth.module.ts +12 -0
  1295. package/templates/layers/auth-oidc/files/node/src/auth/jwt-verifier.ts +97 -0
  1296. package/templates/layers/auth-oidc/files/package.json +6 -0
  1297. package/templates/layers/auth-oidc/files/pyproject.toml +2 -0
  1298. package/templates/layers/auth-oidc/files/python/.env.oidc.example +14 -0
  1299. package/templates/layers/auth-oidc/files/python/app/auth/dependencies.py +69 -0
  1300. package/templates/layers/auth-oidc/files/python/app/auth/settings.py +32 -0
  1301. package/templates/layers/auth-oidc/files/python/app/auth/verifier.py +57 -0
  1302. package/templates/layers/auth-oidc/files/python/docs/auth-oidc.md +57 -0
  1303. package/templates/layers/auth-oidc/files/python/requirements-auth-oidc.txt +4 -0
  1304. package/templates/layers/auth-oidc/files/typescript/.env.oidc.example +21 -0
  1305. package/templates/layers/auth-oidc/files/typescript/docs/auth-oidc.md +69 -0
  1306. package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/callback/route.ts +43 -0
  1307. package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/login/route.ts +40 -0
  1308. package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/logout/route.ts +27 -0
  1309. package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/me/route.ts +12 -0
  1310. package/templates/layers/auth-oidc/files/typescript/src/lib/auth/config.ts +98 -0
  1311. package/templates/layers/auth-oidc/files/typescript/src/lib/auth/guard.ts +23 -0
  1312. package/templates/layers/auth-oidc/files/typescript/src/lib/auth/oidc.ts +19 -0
  1313. package/templates/layers/auth-oidc/files/typescript/src/lib/auth/session.ts +81 -0
  1314. package/templates/layers/cache-redis/blueprint.yaml +186 -0
  1315. package/templates/layers/cache-redis/files/.env.cache.example +29 -0
  1316. package/templates/layers/cache-redis/files/Directory.Packages.props +5 -0
  1317. package/templates/layers/cache-redis/files/__solutionName.dot__.slnx +5 -0
  1318. package/templates/layers/cache-redis/files/docker-compose.redis.yml +33 -0
  1319. package/templates/layers/cache-redis/files/docs/cache/redis.md +113 -0
  1320. package/templates/layers/cache-redis/files/go.mod +1 -0
  1321. package/templates/layers/cache-redis/files/internal/cache/cache.go +127 -0
  1322. package/templates/layers/cache-redis/files/internal/cache/cache_test.go +113 -0
  1323. package/templates/layers/cache-redis/files/internal/cache/config.go +110 -0
  1324. package/templates/layers/cache-redis/files/internal/cache/memory.go +124 -0
  1325. package/templates/layers/cache-redis/files/internal/cache/redis.go +108 -0
  1326. package/templates/layers/cache-redis/files/package.json +5 -0
  1327. package/templates/layers/cache-redis/files/pyproject.toml +2 -0
  1328. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/CacheKey.cs +44 -0
  1329. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/CacheOptions.cs +119 -0
  1330. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/CacheStoreFactory.cs +16 -0
  1331. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/ICacheStore.cs +37 -0
  1332. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/MemoryCacheStore.cs +129 -0
  1333. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/RedisCacheStore.cs +139 -0
  1334. package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/__solutionName.dot__.Cache.Redis.csproj +18 -0
  1335. package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/api.py +67 -0
  1336. package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/keys.py +39 -0
  1337. package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/redis_store.py +85 -0
  1338. package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/settings.py +82 -0
  1339. package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/store.py +113 -0
  1340. package/templates/layers/cache-redis/files/src/cache/index.ts +54 -0
  1341. package/templates/layers/cache-redis/files/src/cache/keys.ts +28 -0
  1342. package/templates/layers/cache-redis/files/src/cache/redis.ts +131 -0
  1343. package/templates/layers/cache-redis/files/src/cache/settings.ts +86 -0
  1344. package/templates/layers/cache-redis/files/src/cache/store.ts +98 -0
  1345. package/templates/layers/cache-redis/files/tests/test_cache_redis.py +105 -0
  1346. package/templates/layers/ci-github-actions/blueprint.yaml +174 -0
  1347. package/templates/layers/ci-github-actions/files/.github/actions/dotnet-setup/action.yml +25 -0
  1348. package/templates/layers/ci-github-actions/files/.github/actions/go-setup/action.yml +30 -0
  1349. package/templates/layers/ci-github-actions/files/.github/actions/node-setup/action.yml +58 -0
  1350. package/templates/layers/ci-github-actions/files/.github/actions/python-setup/action.yml +23 -0
  1351. package/templates/layers/ci-github-actions/files/.github/dependabot.yml +13 -0
  1352. package/templates/layers/ci-github-actions/files/.github/scripts/run-package-script.sh +13 -0
  1353. package/templates/layers/ci-github-actions/files/.github/workflows/ci-dotnet.yml +85 -0
  1354. package/templates/layers/ci-github-actions/files/.github/workflows/ci-go.yml +91 -0
  1355. package/templates/layers/ci-github-actions/files/.github/workflows/ci-node.yml +111 -0
  1356. package/templates/layers/ci-github-actions/files/.github/workflows/ci-python.yml +125 -0
  1357. package/templates/layers/ci-github-actions/files/docs/ci-github-actions.md +106 -0
  1358. package/templates/layers/db-core/blueprint.yaml +98 -0
  1359. package/templates/layers/db-core/files/.env.example +18 -0
  1360. package/templates/layers/db-core/files/__solutionName.dot__.slnx +5 -0
  1361. package/templates/layers/db-core/files/docs/persistence.md +91 -0
  1362. package/templates/layers/db-core/files/internal/db/config.go +108 -0
  1363. package/templates/layers/db-core/files/internal/db/errors.go +61 -0
  1364. package/templates/layers/db-core/files/internal/db/memory.go +141 -0
  1365. package/templates/layers/db-core/files/internal/db/memory_test.go +195 -0
  1366. package/templates/layers/db-core/files/internal/db/ports.go +76 -0
  1367. package/templates/layers/db-core/files/internal/db/repository.go +134 -0
  1368. package/templates/layers/db-core/files/internal/db/retry.go +30 -0
  1369. package/templates/layers/db-core/files/package.json +5 -0
  1370. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/DatabaseException.cs +39 -0
  1371. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/DatabaseOptions.cs +65 -0
  1372. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/DatabaseRetry.cs +24 -0
  1373. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/IRepository.cs +30 -0
  1374. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/IUnitOfWork.cs +23 -0
  1375. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/InMemory/InMemoryDatabase.cs +188 -0
  1376. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/Query.cs +29 -0
  1377. package/templates/layers/db-core/files/src/__solutionName.dot__.Data/__solutionName.dot__.Data.csproj +16 -0
  1378. package/templates/layers/db-core/files/src/__solutionName.snake__/db/api.py +63 -0
  1379. package/templates/layers/db-core/files/src/__solutionName.snake__/db/config.py +79 -0
  1380. package/templates/layers/db-core/files/src/__solutionName.snake__/db/errors.py +47 -0
  1381. package/templates/layers/db-core/files/src/__solutionName.snake__/db/memory.py +143 -0
  1382. package/templates/layers/db-core/files/src/__solutionName.snake__/db/ports.py +80 -0
  1383. package/templates/layers/db-core/files/src/__solutionName.snake__/db/retry.py +25 -0
  1384. package/templates/layers/db-core/files/src/db/config.ts +65 -0
  1385. package/templates/layers/db-core/files/src/db/errors.ts +52 -0
  1386. package/templates/layers/db-core/files/src/db/index.ts +41 -0
  1387. package/templates/layers/db-core/files/src/db/memory.test.ts +107 -0
  1388. package/templates/layers/db-core/files/src/db/memory.ts +182 -0
  1389. package/templates/layers/db-core/files/src/db/ports.ts +58 -0
  1390. package/templates/layers/db-core/files/src/db/retry.ts +20 -0
  1391. package/templates/layers/db-core/files/tests/test_db_core.py +95 -0
  1392. package/templates/layers/db-mongo/blueprint.yaml +157 -0
  1393. package/templates/layers/db-mongo/files/.env.mongo.example +17 -0
  1394. package/templates/layers/db-mongo/files/Directory.Packages.props +7 -0
  1395. package/templates/layers/db-mongo/files/__solutionName.dot__.slnx +5 -0
  1396. package/templates/layers/db-mongo/files/docker-compose.mongo.yml +27 -0
  1397. package/templates/layers/db-mongo/files/docs/db-mongo.md +138 -0
  1398. package/templates/layers/db-mongo/files/go.mod +1 -0
  1399. package/templates/layers/db-mongo/files/internal/db/mongodb/client.go +57 -0
  1400. package/templates/layers/db-mongo/files/internal/db/mongodb/config.go +105 -0
  1401. package/templates/layers/db-mongo/files/internal/db/mongodb/indexes.go +42 -0
  1402. package/templates/layers/db-mongo/files/package.json +5 -0
  1403. package/templates/layers/db-mongo/files/pyproject.toml +2 -0
  1404. package/templates/layers/db-mongo/files/requirements-mongo.txt +2 -0
  1405. package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoContext.cs +21 -0
  1406. package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoHealthCheck.cs +28 -0
  1407. package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoIndexes.cs +25 -0
  1408. package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoOptions.cs +23 -0
  1409. package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoServiceCollectionExtensions.cs +31 -0
  1410. package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/__solutionName.dot__.Infrastructure.Mongo.csproj +18 -0
  1411. package/templates/layers/db-mongo/files/src/__solutionName.snake__/db/mongo/client.py +48 -0
  1412. package/templates/layers/db-mongo/files/src/__solutionName.snake__/db/mongo/config.py +66 -0
  1413. package/templates/layers/db-mongo/files/src/__solutionName.snake__/db/mongo/indexes.py +29 -0
  1414. package/templates/layers/db-mongo/files/src/db/mongo/client.rs +37 -0
  1415. package/templates/layers/db-mongo/files/src/db/mongo/client.ts +51 -0
  1416. package/templates/layers/db-mongo/files/src/db/mongo/config.rs +68 -0
  1417. package/templates/layers/db-mongo/files/src/db/mongo/config.ts +58 -0
  1418. package/templates/layers/db-mongo/files/src/db/mongo/index.ts +3 -0
  1419. package/templates/layers/db-mongo/files/src/db/mongo/indexes.rs +26 -0
  1420. package/templates/layers/db-mongo/files/src/db/mongo/indexes.ts +21 -0
  1421. package/templates/layers/db-mongo/files/src/db/mongo/mod.rs +7 -0
  1422. package/templates/layers/db-mongo/files/src/main/java/__solutionName.lower__/db/mongo/MongoClientProvider.java +66 -0
  1423. package/templates/layers/db-mongo/files/src/main/java/__solutionName.lower__/db/mongo/MongoConfig.java +56 -0
  1424. package/templates/layers/db-mongo/files/src/main/java/__solutionName.lower__/db/mongo/MongoIndexes.java +26 -0
  1425. package/templates/layers/db-postgres/blueprint.yaml +130 -0
  1426. package/templates/layers/db-postgres/files/.env.postgres.example +31 -0
  1427. package/templates/layers/db-postgres/files/Directory.Packages.props +5 -0
  1428. package/templates/layers/db-postgres/files/__solutionName.dot__.slnx +5 -0
  1429. package/templates/layers/db-postgres/files/docker-compose.postgres.yml +28 -0
  1430. package/templates/layers/db-postgres/files/docs/postgres.md +152 -0
  1431. package/templates/layers/db-postgres/files/go.mod +1 -0
  1432. package/templates/layers/db-postgres/files/internal/db/postgres.go +48 -0
  1433. package/templates/layers/db-postgres/files/internal/db/postgres_config.go +79 -0
  1434. package/templates/layers/db-postgres/files/internal/db/postgres_errors.go +59 -0
  1435. package/templates/layers/db-postgres/files/internal/db/postgres_migrate.go +155 -0
  1436. package/templates/layers/db-postgres/files/migrations/0001_init.sql +9 -0
  1437. package/templates/layers/db-postgres/files/package.json +11 -0
  1438. package/templates/layers/db-postgres/files/pyproject.toml +2 -0
  1439. package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/PostgresErrors.cs +57 -0
  1440. package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/PostgresMigrator.cs +171 -0
  1441. package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/PostgresOptions.cs +92 -0
  1442. package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/__solutionName.dot__.Data.Postgres.csproj +25 -0
  1443. package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres.py +256 -0
  1444. package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres_config.py +81 -0
  1445. package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres_errors.py +48 -0
  1446. package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres_migrate.py +132 -0
  1447. package/templates/layers/db-postgres/files/src/db/postgres/config.ts +86 -0
  1448. package/templates/layers/db-postgres/files/src/db/postgres/database.ts +109 -0
  1449. package/templates/layers/db-postgres/files/src/db/postgres/errors.ts +48 -0
  1450. package/templates/layers/db-postgres/files/src/db/postgres/index.ts +16 -0
  1451. package/templates/layers/db-postgres/files/src/db/postgres/migrate.cli.ts +11 -0
  1452. package/templates/layers/db-postgres/files/src/db/postgres/migrate.ts +134 -0
  1453. package/templates/layers/db-postgres/files/src/db/postgres/repository.ts +159 -0
  1454. package/templates/layers/db-sqlite/blueprint.yaml +147 -0
  1455. package/templates/layers/db-sqlite/files/.env.sqlite.example +20 -0
  1456. package/templates/layers/db-sqlite/files/.gitignore.sqlite +5 -0
  1457. package/templates/layers/db-sqlite/files/Directory.Packages.props +6 -0
  1458. package/templates/layers/db-sqlite/files/__solutionName.dot__.slnx +5 -0
  1459. package/templates/layers/db-sqlite/files/docs/db/sqlite.md +91 -0
  1460. package/templates/layers/db-sqlite/files/go.mod +1 -0
  1461. package/templates/layers/db-sqlite/files/internal/db/sqlite/health.go +39 -0
  1462. package/templates/layers/db-sqlite/files/internal/db/sqlite/migrate.go +106 -0
  1463. package/templates/layers/db-sqlite/files/internal/db/sqlite/settings.go +103 -0
  1464. package/templates/layers/db-sqlite/files/internal/db/sqlite/sqlite.go +78 -0
  1465. package/templates/layers/db-sqlite/files/internal/db/sqlite/sqlite_test.go +94 -0
  1466. package/templates/layers/db-sqlite/files/migrations/0001_init.sql +11 -0
  1467. package/templates/layers/db-sqlite/files/package.json +8 -0
  1468. package/templates/layers/db-sqlite/files/pyproject.toml +2 -0
  1469. package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteConnectionFactory.cs +67 -0
  1470. package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteHealth.cs +37 -0
  1471. package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteMigrator.cs +99 -0
  1472. package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteOptions.cs +81 -0
  1473. package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/__solutionName.dot__.Persistence.Sqlite.csproj +18 -0
  1474. package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/connection.py +49 -0
  1475. package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/health.py +36 -0
  1476. package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/migrate.py +58 -0
  1477. package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/settings.py +68 -0
  1478. package/templates/layers/db-sqlite/files/src/db/sqlite/cli.ts +38 -0
  1479. package/templates/layers/db-sqlite/files/src/db/sqlite/client.ts +45 -0
  1480. package/templates/layers/db-sqlite/files/src/db/sqlite/health.ts +30 -0
  1481. package/templates/layers/db-sqlite/files/src/db/sqlite/index.ts +8 -0
  1482. package/templates/layers/db-sqlite/files/src/db/sqlite/migrate.ts +51 -0
  1483. package/templates/layers/db-sqlite/files/src/db/sqlite/settings.ts +75 -0
  1484. package/templates/layers/db-sqlite/files/tests/test_db_sqlite.py +50 -0
  1485. package/templates/layers/devcontainer/blueprint.yaml +130 -0
  1486. package/templates/layers/devcontainer/files/.devcontainer/devcontainer.json +61 -0
  1487. package/templates/layers/devcontainer/files/.devcontainer/post-create.sh +29 -0
  1488. package/templates/layers/devcontainer/files/.devcontainer/setup-dotnet.sh +19 -0
  1489. package/templates/layers/devcontainer/files/.devcontainer/setup-go.sh +13 -0
  1490. package/templates/layers/devcontainer/files/.devcontainer/setup-node.sh +29 -0
  1491. package/templates/layers/devcontainer/files/.devcontainer/setup-python.sh +32 -0
  1492. package/templates/layers/devcontainer/files/docs/devcontainer.md +75 -0
  1493. package/templates/layers/docker/blueprint.yaml +168 -0
  1494. package/templates/layers/docker/files/.dockerignore +80 -0
  1495. package/templates/layers/docker/files/.env.docker.example +17 -0
  1496. package/templates/layers/docker/files/Dockerfile.dotnet +38 -0
  1497. package/templates/layers/docker/files/Dockerfile.go +40 -0
  1498. package/templates/layers/docker/files/Dockerfile.nextjs +42 -0
  1499. package/templates/layers/docker/files/Dockerfile.nodejs +46 -0
  1500. package/templates/layers/docker/files/Dockerfile.python +52 -0
  1501. package/templates/layers/docker/files/Dockerfile.spa +30 -0
  1502. package/templates/layers/docker/files/compose.yaml +35 -0
  1503. package/templates/layers/docker/files/docker/nginx.conf +44 -0
  1504. package/templates/layers/docker/files/docs/docker.md +115 -0
  1505. package/templates/layers/docker/files/next.config.ts +11 -0
  1506. package/templates/layers/docker-compose/blueprint.yaml +118 -0
  1507. package/templates/layers/docker-compose/files/.env.compose.example +66 -0
  1508. package/templates/layers/docker-compose/files/compose/cache-none.yml +3 -0
  1509. package/templates/layers/docker-compose/files/compose/cache-redis.yml +28 -0
  1510. package/templates/layers/docker-compose/files/compose/cache-valkey.yml +27 -0
  1511. package/templates/layers/docker-compose/files/compose/db-mongo.yml +27 -0
  1512. package/templates/layers/docker-compose/files/compose/db-mysql.yml +31 -0
  1513. package/templates/layers/docker-compose/files/compose/db-none.yml +4 -0
  1514. package/templates/layers/docker-compose/files/compose/db-postgres.yml +28 -0
  1515. package/templates/layers/docker-compose/files/compose/queue-kafka.yml +35 -0
  1516. package/templates/layers/docker-compose/files/compose/queue-nats.yml +26 -0
  1517. package/templates/layers/docker-compose/files/compose/queue-none.yml +3 -0
  1518. package/templates/layers/docker-compose/files/compose/queue-rabbitmq.yml +27 -0
  1519. package/templates/layers/docker-compose/files/docker-compose.yml +20 -0
  1520. package/templates/layers/docker-compose/files/docs/local-stack.md +135 -0
  1521. package/templates/layers/evals/blueprint.yaml +211 -0
  1522. package/templates/layers/evals/files/.github/workflows/evals-node.yml +55 -0
  1523. package/templates/layers/evals/files/.github/workflows/evals-python.yml +54 -0
  1524. package/templates/layers/evals/files/docs/evals.md +68 -0
  1525. package/templates/layers/evals/files/evals/README.md +73 -0
  1526. package/templates/layers/evals/files/evals/assertions.py +56 -0
  1527. package/templates/layers/evals/files/evals/assertions.ts +66 -0
  1528. package/templates/layers/evals/files/evals/budget.py +55 -0
  1529. package/templates/layers/evals/files/evals/budget.ts +61 -0
  1530. package/templates/layers/evals/files/evals/cli.ts +76 -0
  1531. package/templates/layers/evals/files/evals/config.py +83 -0
  1532. package/templates/layers/evals/files/evals/config.ts +77 -0
  1533. package/templates/layers/evals/files/evals/dataset.py +90 -0
  1534. package/templates/layers/evals/files/evals/dataset.ts +101 -0
  1535. package/templates/layers/evals/files/evals/datasets/case.schema.json +67 -0
  1536. package/templates/layers/evals/files/evals/datasets/golden.jsonl +4 -0
  1537. package/templates/layers/evals/files/evals/run.py +85 -0
  1538. package/templates/layers/evals/files/evals/runner.py +114 -0
  1539. package/templates/layers/evals/files/evals/runner.ts +125 -0
  1540. package/templates/layers/evals/files/evals/target.ts +95 -0
  1541. package/templates/layers/evals/files/evals/targets.py +103 -0
  1542. package/templates/layers/evals/files/evals/tracing.py +49 -0
  1543. package/templates/layers/evals/files/evals/tracing.ts +31 -0
  1544. package/templates/layers/evals/files/evals/tsconfig.json +15 -0
  1545. package/templates/layers/health-checks/blueprint.yaml +170 -0
  1546. package/templates/layers/health-checks/files/.env.health.example +23 -0
  1547. package/templates/layers/health-checks/files/__solutionName.dot__.slnx +5 -0
  1548. package/templates/layers/health-checks/files/docs/health-checks.md +200 -0
  1549. package/templates/layers/health-checks/files/internal/health/config.go +96 -0
  1550. package/templates/layers/health-checks/files/internal/health/health.go +113 -0
  1551. package/templates/layers/health-checks/files/internal/health/health_test.go +102 -0
  1552. package/templates/layers/health-checks/files/internal/health/http.go +56 -0
  1553. package/templates/layers/health-checks/files/internal/health/probes.go +88 -0
  1554. package/templates/layers/health-checks/files/internal/health/runner.go +100 -0
  1555. package/templates/layers/health-checks/files/package.json +5 -0
  1556. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/DependencyProbeOptions.cs +26 -0
  1557. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthEndpointExtensions.cs +34 -0
  1558. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthOptions.cs +25 -0
  1559. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthProbeResponder.cs +121 -0
  1560. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthServiceCollectionExtensions.cs +51 -0
  1561. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthTags.cs +10 -0
  1562. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HttpDependencyHealthCheck.cs +44 -0
  1563. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/TcpDependencyHealthCheck.cs +36 -0
  1564. package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/__solutionName.dot__.Health.csproj +15 -0
  1565. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/__init__.py +28 -0
  1566. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/models.py +48 -0
  1567. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/probes.py +82 -0
  1568. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/register.py +15 -0
  1569. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/registry.py +24 -0
  1570. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/router.py +52 -0
  1571. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/runner.py +94 -0
  1572. package/templates/layers/health-checks/files/src/__solutionName.snake__/health/settings.py +33 -0
  1573. package/templates/layers/health-checks/files/src/app/health/live/route.ts +11 -0
  1574. package/templates/layers/health-checks/files/src/app/health/ready/route.ts +10 -0
  1575. package/templates/layers/health-checks/files/src/app/health/startup/route.ts +10 -0
  1576. package/templates/layers/health-checks/files/src/health/__tests__/health.test.ts +66 -0
  1577. package/templates/layers/health-checks/files/src/health/config.ts +62 -0
  1578. package/templates/layers/health-checks/files/src/health/handler.ts +50 -0
  1579. package/templates/layers/health-checks/files/src/health/index.ts +20 -0
  1580. package/templates/layers/health-checks/files/src/health/node/http.ts +26 -0
  1581. package/templates/layers/health-checks/files/src/health/node/tcp.ts +36 -0
  1582. package/templates/layers/health-checks/files/src/health/probes.ts +61 -0
  1583. package/templates/layers/health-checks/files/src/health/register.ts +15 -0
  1584. package/templates/layers/health-checks/files/src/health/registry.ts +27 -0
  1585. package/templates/layers/health-checks/files/src/health/runner.ts +76 -0
  1586. package/templates/layers/health-checks/files/src/health/types.ts +39 -0
  1587. package/templates/layers/health-checks/files/tests/__init__.py +1 -0
  1588. package/templates/layers/health-checks/files/tests/test_health.py +51 -0
  1589. package/templates/layers/lint-format/blueprint.yaml +178 -0
  1590. package/templates/layers/lint-format/files/.editorconfig +87 -0
  1591. package/templates/layers/lint-format/files/.golangci.yml +34 -0
  1592. package/templates/layers/lint-format/files/.prettierignore +20 -0
  1593. package/templates/layers/lint-format/files/.prettierrc.json +11 -0
  1594. package/templates/layers/lint-format/files/docs/lint-format.md +111 -0
  1595. package/templates/layers/lint-format/files/eslint.config.mjs +43 -0
  1596. package/templates/layers/lint-format/files/package.json +9 -0
  1597. package/templates/layers/lint-format/files/ruff.toml +25 -0
  1598. package/templates/layers/observability-otel/blueprint.yaml +212 -0
  1599. package/templates/layers/observability-otel/files/.env.otel.example +30 -0
  1600. package/templates/layers/observability-otel/files/Directory.Packages.props +8 -0
  1601. package/templates/layers/observability-otel/files/__solutionName.dot__.slnx +5 -0
  1602. package/templates/layers/observability-otel/files/docker-compose.otel.yml +16 -0
  1603. package/templates/layers/observability-otel/files/docs/observability.md +224 -0
  1604. package/templates/layers/observability-otel/files/go.mod +7 -0
  1605. package/templates/layers/observability-otel/files/internal/telemetry/config.go +122 -0
  1606. package/templates/layers/observability-otel/files/internal/telemetry/http.go +33 -0
  1607. package/templates/layers/observability-otel/files/internal/telemetry/logging.go +84 -0
  1608. package/templates/layers/observability-otel/files/internal/telemetry/provider.go +77 -0
  1609. package/templates/layers/observability-otel/files/otel-collector-config.yaml +47 -0
  1610. package/templates/layers/observability-otel/files/package.json +15 -0
  1611. package/templates/layers/observability-otel/files/pyproject.toml +2 -0
  1612. package/templates/layers/observability-otel/files/src/__solutionName.dot__.Observability/ObservabilityExtensions.cs +81 -0
  1613. package/templates/layers/observability-otel/files/src/__solutionName.dot__.Observability/ObservabilityOptions.cs +37 -0
  1614. package/templates/layers/observability-otel/files/src/__solutionName.dot__.Observability/__solutionName.dot__.Observability.csproj +25 -0
  1615. package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/__init__.py +15 -0
  1616. package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/config.py +99 -0
  1617. package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/log.py +86 -0
  1618. package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/setup.py +124 -0
  1619. package/templates/layers/observability-otel/files/src/instrumentation.ts +9 -0
  1620. package/templates/layers/observability-otel/files/src/otel/config.ts +83 -0
  1621. package/templates/layers/observability-otel/files/src/otel/logger.ts +46 -0
  1622. package/templates/layers/observability-otel/files/src/otel/register.ts +5 -0
  1623. package/templates/layers/observability-otel/files/src/otel/sdk.ts +73 -0
  1624. package/templates/layers/queue-broker/blueprint.yaml +194 -0
  1625. package/templates/layers/queue-broker/files/.env.queue.example +35 -0
  1626. package/templates/layers/queue-broker/files/Directory.Packages.props +7 -0
  1627. package/templates/layers/queue-broker/files/__solutionName.dot__.slnx +5 -0
  1628. package/templates/layers/queue-broker/files/cmd/worker/main.go +34 -0
  1629. package/templates/layers/queue-broker/files/docker-compose.queue-rabbitmq.yml +26 -0
  1630. package/templates/layers/queue-broker/files/docker-compose.queue-redis.yml +23 -0
  1631. package/templates/layers/queue-broker/files/docs/queue-asynq.md +71 -0
  1632. package/templates/layers/queue-broker/files/docs/queue-bullmq.md +62 -0
  1633. package/templates/layers/queue-broker/files/docs/queue-celery.md +58 -0
  1634. package/templates/layers/queue-broker/files/docs/queue-masstransit.md +84 -0
  1635. package/templates/layers/queue-broker/files/go.mod +2 -0
  1636. package/templates/layers/queue-broker/files/internal/queue/client.go +57 -0
  1637. package/templates/layers/queue-broker/files/internal/queue/config.go +109 -0
  1638. package/templates/layers/queue-broker/files/internal/queue/config_test.go +38 -0
  1639. package/templates/layers/queue-broker/files/internal/queue/handlers.go +33 -0
  1640. package/templates/layers/queue-broker/files/internal/queue/server.go +29 -0
  1641. package/templates/layers/queue-broker/files/internal/queue/tasks.go +11 -0
  1642. package/templates/layers/queue-broker/files/package.json +6 -0
  1643. package/templates/layers/queue-broker/files/pyproject.toml +2 -0
  1644. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/Consumers/WelcomeEmailRequestedConsumer.cs +24 -0
  1645. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/Contracts/WelcomeEmailRequested.cs +7 -0
  1646. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/IJobPublisher.cs +11 -0
  1647. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/JobPublisher.cs +10 -0
  1648. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/QueueOptions.cs +32 -0
  1649. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/QueueServiceCollectionExtensions.cs +60 -0
  1650. package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/__solutionName.dot__.Queue.csproj +21 -0
  1651. package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/__init__.py +12 -0
  1652. package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/app.py +35 -0
  1653. package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/config.py +90 -0
  1654. package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/producer.py +10 -0
  1655. package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/tasks.py +31 -0
  1656. package/templates/layers/queue-broker/files/src/queue/config.ts +60 -0
  1657. package/templates/layers/queue-broker/files/src/queue/connection.ts +19 -0
  1658. package/templates/layers/queue-broker/files/src/queue/handlers.ts +22 -0
  1659. package/templates/layers/queue-broker/files/src/queue/index.ts +8 -0
  1660. package/templates/layers/queue-broker/files/src/queue/jobs.ts +15 -0
  1661. package/templates/layers/queue-broker/files/src/queue/producer.ts +39 -0
  1662. package/templates/layers/queue-broker/files/src/queue/worker.cli.ts +32 -0
  1663. package/templates/layers/queue-broker/files/src/queue/worker.ts +28 -0
  1664. package/templates/layers/queue-broker/files/tests/test_queue_config.py +37 -0
  1665. package/templates/layers/release-automation/blueprint.yaml +205 -0
  1666. package/templates/layers/release-automation/files/.changeset/README.md +31 -0
  1667. package/templates/layers/release-automation/files/.changeset/config.json +12 -0
  1668. package/templates/layers/release-automation/files/.githooks/commit-msg +32 -0
  1669. package/templates/layers/release-automation/files/.github/workflows/commit-conventions.yml +45 -0
  1670. package/templates/layers/release-automation/files/.github/workflows/release-changesets.yml +68 -0
  1671. package/templates/layers/release-automation/files/.github/workflows/release-dotnet.yml +90 -0
  1672. package/templates/layers/release-automation/files/.github/workflows/release-go.yml +89 -0
  1673. package/templates/layers/release-automation/files/.github/workflows/release-monorepo.yml +40 -0
  1674. package/templates/layers/release-automation/files/.github/workflows/release-node.yml +85 -0
  1675. package/templates/layers/release-automation/files/.github/workflows/release-python.yml +68 -0
  1676. package/templates/layers/release-automation/files/.release-please-manifest.json +3 -0
  1677. package/templates/layers/release-automation/files/docs/release-automation.md +154 -0
  1678. package/templates/layers/release-automation/files/release-please-config.json +22 -0
  1679. package/templates/layers/security-supply-chain/blueprint.yaml +208 -0
  1680. package/templates/layers/security-supply-chain/files/.githooks/pre-commit +17 -0
  1681. package/templates/layers/security-supply-chain/files/.github/dependabot.yml +30 -0
  1682. package/templates/layers/security-supply-chain/files/.github/workflows/codeql.yml +54 -0
  1683. package/templates/layers/security-supply-chain/files/.github/workflows/dependency-review.yml +35 -0
  1684. package/templates/layers/security-supply-chain/files/.github/workflows/sbom.yml +56 -0
  1685. package/templates/layers/security-supply-chain/files/.github/workflows/scorecard.yml +51 -0
  1686. package/templates/layers/security-supply-chain/files/.github/workflows/secret-scan.yml +62 -0
  1687. package/templates/layers/security-supply-chain/files/.gitleaks.toml +42 -0
  1688. package/templates/layers/security-supply-chain/files/SECURITY.md +36 -0
  1689. package/templates/layers/security-supply-chain/files/docs/security-supply-chain.md +124 -0
  1690. package/templates/layers/security-supply-chain/files/npmrc +13 -0
  1691. package/templates/layers/security-supply-chain/files/renovate.json +26 -0
  1692. package/templates/layers/testing-e2e/blueprint.yaml +199 -0
  1693. package/templates/layers/testing-e2e/files/.env.e2e.example +32 -0
  1694. package/templates/layers/testing-e2e/files/Directory.Packages.props +7 -0
  1695. package/templates/layers/testing-e2e/files/__solutionName.dot__.slnx +5 -0
  1696. package/templates/layers/testing-e2e/files/docs/testing-e2e.md +106 -0
  1697. package/templates/layers/testing-e2e/files/e2e/api/contract.spec.ts +37 -0
  1698. package/templates/layers/testing-e2e/files/e2e/api/health.spec.ts +29 -0
  1699. package/templates/layers/testing-e2e/files/e2e/browser/app.spec.ts +27 -0
  1700. package/templates/layers/testing-e2e/files/e2e/browser/navigation.spec.ts +26 -0
  1701. package/templates/layers/testing-e2e/files/e2e/config.ts +85 -0
  1702. package/templates/layers/testing-e2e/files/e2e/support.ts +20 -0
  1703. package/templates/layers/testing-e2e/files/package.json +8 -0
  1704. package/templates/layers/testing-e2e/files/playwright.config.ts +44 -0
  1705. package/templates/layers/testing-e2e/files/test/e2e/config.go +71 -0
  1706. package/templates/layers/testing-e2e/files/test/e2e/contract_test.go +65 -0
  1707. package/templates/layers/testing-e2e/files/test/e2e/health_test.go +71 -0
  1708. package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/ApiContractTests.cs +51 -0
  1709. package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/DeploymentFixture.cs +44 -0
  1710. package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/E2eSettings.cs +26 -0
  1711. package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/HealthContractTests.cs +42 -0
  1712. package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/__solutionName.dot__.E2E.csproj +23 -0
  1713. package/templates/layers/testing-e2e/files/tests/e2e/conftest.py +52 -0
  1714. package/templates/layers/testing-e2e/files/tests/e2e/e2e_config.py +47 -0
  1715. package/templates/layers/testing-e2e/files/tests/e2e/test_api_contract.py +35 -0
  1716. package/templates/layers/testing-e2e/files/tests/e2e/test_health_contract.py +28 -0
  1717. package/templates/layers/testing-unit/blueprint.yaml +161 -0
  1718. package/templates/layers/testing-unit/files/.coveragerc +12 -0
  1719. package/templates/layers/testing-unit/files/Directory.Packages.props +9 -0
  1720. package/templates/layers/testing-unit/files/__solutionName.dot__.slnx +5 -0
  1721. package/templates/layers/testing-unit/files/docs/testing.md +90 -0
  1722. package/templates/layers/testing-unit/files/internal/testsupport/clock.go +89 -0
  1723. package/templates/layers/testing-unit/files/internal/testsupport/clock_test.go +132 -0
  1724. package/templates/layers/testing-unit/files/internal/testsupport/recorder.go +41 -0
  1725. package/templates/layers/testing-unit/files/package.json +10 -0
  1726. package/templates/layers/testing-unit/files/pyproject.toml +2 -0
  1727. package/templates/layers/testing-unit/files/pytest.ini +16 -0
  1728. package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/Recorder.cs +66 -0
  1729. package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/RecorderTests.cs +90 -0
  1730. package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/__solutionName.dot__.Tests.csproj +32 -0
  1731. package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/coverlet.runsettings +17 -0
  1732. package/templates/layers/testing-unit/files/tests/conftest.py +17 -0
  1733. package/templates/layers/testing-unit/files/tests/support/clock.ts +81 -0
  1734. package/templates/layers/testing-unit/files/tests/support/index.ts +2 -0
  1735. package/templates/layers/testing-unit/files/tests/support/recorder.ts +21 -0
  1736. package/templates/layers/testing-unit/files/tests/support.py +78 -0
  1737. package/templates/layers/testing-unit/files/tests/support.test.ts +87 -0
  1738. package/templates/layers/testing-unit/files/tests/test_support.py +85 -0
  1739. package/templates/layers/testing-unit/files/vitest.config.ts +52 -0
@@ -0,0 +1,629 @@
1
+ # Groundplan source catalog — category: fullstack-saas
2
+ #
3
+ # Research date: 2026-07-18
4
+ #
5
+ # VERIFICATION METHOD / PROVENANCE NOTE
6
+ # -------------------------------------
7
+ # Every star count, last-commit date, archived flag and license below was verified
8
+ # against a GitHub primary source on 2026-07-18. The unauthenticated GitHub JSON API
9
+ # (api.github.com, 60 req/hr per IP) was exhausted for this run's IP by concurrent
10
+ # sibling research workflows, so the following primary sources were used instead:
11
+ #
12
+ # * stars / archived / default branch -> github.com/{owner}/{repo} rendered repo page
13
+ # (embedded React payload + repo-stars-counter)
14
+ # * license -> the ACTUAL LICENSE file text fetched from
15
+ # raw.githubusercontent.com, SPDX-matched against
16
+ # canonical license text, cross-checked against
17
+ # GitHub's own license-tab classification
18
+ # * last commit (pushed_at) -> github.com/{owner}/{repo}/commits/{branch}.atom
19
+ # (entry-level <updated>, not feed-level)
20
+ #
21
+ # The task permits license verification from "the LICENSE file"; reading the license text
22
+ # is strictly stronger evidence than an spdx_id label, so licenses here are high-confidence.
23
+ # Star counts are exact (from the title attribute, not the abbreviated "29k" display).
24
+ #
25
+ # Two results were manually re-verified because they contradicted expectations:
26
+ # * calcom/cal.com -> SEE CORRECTION BELOW. The original claim ("cal.com relicensed to
27
+ # MIT") was WRONG. See the ADVERSARIAL VERIFICATION PASS note.
28
+ # * theodorusclarence/ts-nextjs-tailwind-starter -> NO license file exists at any of
29
+ # LICENSE/LICENSE.md/LICENSE.txt/license/COPYING (all 404) and GitHub
30
+ # detects no license. Per the rules this is EXCLUDED, not permissive.
31
+ #
32
+ # ADVERSARIAL VERIFICATION PASS — 2026-07-18 (second, independent reviewer)
33
+ # ------------------------------------------------------------------------
34
+ # api.github.com was still rate-limited (HTTP 403, "rate limit exceeded") for this IP and no
35
+ # GITHUB_TOKEN / gh CLI was available, so the same alternative primary sources were used and
36
+ # every figure was re-fetched from scratch rather than trusted:
37
+ # * stars -> repo-stars-counter-star title attribute on the rendered repo page
38
+ # * dates -> /commits/{branch}.atom entry-level <updated>
39
+ # * license -> raw.githubusercontent.com LICENSE text, plus per-package LICENSE probes on
40
+ # the two monorepos (supabase, cal.*) to catch root-vs-package divergence
41
+ #
42
+ # RESULT: all 15 star counts and all 15 last-commit dates matched the recorded values exactly.
43
+ # All 15 recorded SPDX ids matched the actual LICENSE text. vercel/nextjs-subscription-payments
44
+ # is confirmed archived ("Public archive" banner) and is already recorded maintained:false.
45
+ # supabase/supabase was probed for per-package license overrides (apps/studio, apps/docs,
46
+ # apps/www, packages, examples) — none exist; root Apache-2.0 governs. Numbers were sound.
47
+ #
48
+ # The defects were NOT in the numbers. They were:
49
+ # 1. CRITICAL / IDENTITY — the cal.com entry. github.com/calcom/cal.com now 301-redirects to
50
+ # github.com/calcom/cal.diy, and raw.githubusercontent silently follows repo renames. The
51
+ # first pass fetched an MIT LICENSE, saw it under the cal.com path, and concluded "cal.com
52
+ # relicensed to MIT". It did not. calcom/cal.diy is a SEPARATE, MIT-licensed, enterprise-
53
+ # stripped distribution. Cal.com the product remains open-core. The entry has been
54
+ # retargeted to its true identity and the relicensing narrative deleted. The MIT license
55
+ # is real for cal.diy, so the entry survives the license gate — but anyone acting on the
56
+ # old text would have gone looking for MIT code in a commercially-licensed product.
57
+ # 2. Three proposedLayerIds asserted capabilities the repos do not have (verified against
58
+ # package.json / file existence). Corrected in place; see per-entry comments.
59
+ #
60
+ # STALENESS RULE: last commit older than 18 months (i.e. before 2025-01-18) => maintained:false.
61
+ # A few entries under 18 months are also marked maintained:false where the stack itself has
62
+ # aged out of current practice; each such call is explained in whatToAvoid.
63
+
64
+ category: fullstack-saas
65
+
66
+ sources:
67
+
68
+ # ---------------------------------------------------------------- simple ---
69
+ - name: Skolaczk/next-starter
70
+ url: https://github.com/Skolaczk/next-starter
71
+ stars: 996
72
+ spdx: MIT
73
+ licenseClass: vendorable
74
+ maintained: true
75
+ lastCommit: "2025-11-01"
76
+ complexity: simple
77
+ stack: Next.js 15 + Drizzle + NextAuth v5 + Stripe + next-intl + Tailwind v4
78
+ whatToBorrow: >-
79
+ The cleanest small reference for "auth + db + payments" without monorepo weight.
80
+ Borrow the @t3-oss/env-nextjs env schema (src/env.mjs) as the canonical typed-config
81
+ entry point, the @auth/drizzle-adapter wiring, the next-intl message/routing layout,
82
+ and the split lint/format/typecheck/test/e2e script set in package.json — that script
83
+ taxonomy is a good default for every generated repo. Playwright + Vitest are both
84
+ pre-wired at a size you can actually read end to end.
85
+ whatToAvoid: >-
86
+ Small single-maintainer project (996 stars) — treat as a pattern reference, not an
87
+ upstream you can track. NextAuth v5 is still the beta-era API surface and is being
88
+ superseded by Better Auth in newer starters; do not copy its auth config verbatim
89
+ into a layer you intend to maintain.
90
+ proposedLayerIds:
91
+ - framework-nextjs-app-router
92
+ - db-postgres-drizzle
93
+ - auth-nextauth
94
+ - payments-stripe
95
+ - i18n-next-intl
96
+ - ui-shadcn-tailwind
97
+ - tooling-t3-env
98
+ - testing-vitest
99
+ - testing-playwright
100
+
101
+ - name: dotnize/react-tanstarter
102
+ url: https://github.com/dotnize/react-tanstarter
103
+ stars: 1259
104
+ spdx: Unlicense
105
+ licenseClass: vendorable
106
+ maintained: true
107
+ lastCommit: "2026-07-17"
108
+ complexity: simple
109
+ stack: TanStack Start + TanStack Router/Query + Drizzle + Better Auth + Nitro + Tailwind v4
110
+ whatToBorrow: >-
111
+ The best minimal TanStack Start baseline, and the single most permissively licensed
112
+ entry here (Unlicense = public domain, zero attribution burden — ideal for a generator
113
+ that copies files). Borrow the src/routes file-based routing conventions, the
114
+ @tanstack/react-router-ssr-query integration that hydrates Query state through SSR,
115
+ the better-auth + @better-auth/drizzle-adapter setup, and the Nitro/Vite build config.
116
+ Updated the day before this research ran, so it tracks the fast-moving TanStack Start
117
+ API closely.
118
+ whatToAvoid: >-
119
+ Deliberately unopinionated — no payments, no email, no multi-tenancy, so it cannot be
120
+ the sole source for a full SaaS tier. TanStack Start's API is still moving; anything
121
+ copied needs a version pin and re-validation. Unlicense is not OSI-preferred by some
122
+ corporate policies even though it is maximally permissive.
123
+ proposedLayerIds:
124
+ - framework-tanstack-start
125
+ - db-postgres-drizzle
126
+ - auth-better-auth
127
+ - ui-shadcn-tailwind
128
+ # CORRECTED 2026-07-18: was api-server-actions (a Next.js concept — this is TanStack
129
+ # Start's createServerFn) and deploy-docker (no Dockerfile exists; only a
130
+ # docker-compose.yml for a local Postgres, which is a dev-DB layer, not a deploy layer).
131
+ - api-server-functions
132
+ - dev-docker-compose-postgres
133
+
134
+ # -------------------------------------------------------------- standard ---
135
+ - name: nextjs/saas-starter
136
+ url: https://github.com/nextjs/saas-starter
137
+ stars: 15969
138
+ spdx: MIT
139
+ licenseClass: vendorable
140
+ maintained: true
141
+ lastCommit: "2025-12-11"
142
+ complexity: standard
143
+ stack: Next.js 15 App Router + Postgres + Drizzle + Stripe + JWT cookie sessions + Tailwind v4
144
+ whatToBorrow: >-
145
+ The official Vercel SaaS starter and the highest-signal "sensible default" in the
146
+ category. Borrow the db:setup / db:seed / db:generate / db:migrate / db:studio script
147
+ quartet and the Drizzle schema+migration layout wholesale — that is the cleanest
148
+ Postgres layer contract available. Also borrow the Stripe checkout + customer-portal
149
+ route handlers, the webhook handler, and the hand-rolled JWT-in-httpOnly-cookie session
150
+ implementation (a genuinely useful zero-dependency auth layer when you don't want
151
+ Clerk/Auth.js), plus the activity-log and RBAC-ish team/role tables.
152
+ whatToAvoid: >-
153
+ Auth is deliberately hand-rolled — no OAuth, no email verification, no password reset,
154
+ no MFA. Do not ship it as a complete auth layer; treat it as auth-session-cookie and
155
+ offer a real IdP layer alongside. Team/org modelling is minimal (single team per user
156
+ in practice). Strongly Vercel/Postgres-shaped in its deployment assumptions.
157
+ proposedLayerIds:
158
+ - framework-nextjs-app-router
159
+ - db-postgres-drizzle
160
+ - auth-session-cookie
161
+ - payments-stripe-subscriptions
162
+ - tenancy-organizations
163
+ - rbac-permissions
164
+ - ui-shadcn-tailwind
165
+ - deploy-vercel
166
+
167
+ - name: t3-oss/create-t3-app
168
+ url: https://github.com/t3-oss/create-t3-app
169
+ stars: 29048
170
+ spdx: MIT
171
+ licenseClass: vendorable
172
+ maintained: true
173
+ lastCommit: "2025-12-13"
174
+ complexity: standard
175
+ stack: CLI scaffolder — Next.js + TypeScript + tRPC + Prisma/Drizzle + NextAuth + Tailwind
176
+ whatToBorrow: >-
177
+ Uniquely valuable to Groundplan because it is itself a scaffolder: read cli/src/installers/*
178
+ to see how composable, independently-selectable layers are modelled and applied — each
179
+ installer declares its own deps, files and post-install edits, and index.ts composes
180
+ them. That is close to the exact architecture Groundplan needs. Also borrow the AST-free
181
+ template-merge strategy in cli/src/helpers/, the base vs conditional template split
182
+ under cli/template/{base,extras}/, and the t3-env typed-env pattern this project
183
+ popularised.
184
+ whatToAvoid: >-
185
+ The generated app is intentionally thin — no payments, no orgs, no email. Its templates
186
+ target a slightly older Next.js/NextAuth generation than the 2026 starters here. Don't
187
+ copy the CLI's own prompt/UX chrome; copy the installer composition model.
188
+ proposedLayerIds:
189
+ - scaffold-cli-generator
190
+ - framework-nextjs-app-router
191
+ - api-trpc
192
+ - db-postgres-prisma
193
+ - db-postgres-drizzle
194
+ - auth-nextauth
195
+ - ui-shadcn-tailwind
196
+ - tooling-t3-env
197
+
198
+ - name: CarlosZiegler/fullstack-start-template
199
+ url: https://github.com/CarlosZiegler/fullstack-start-template
200
+ stars: 290
201
+ spdx: MIT
202
+ licenseClass: vendorable
203
+ maintained: true
204
+ lastCommit: "2025-10-20"
205
+ complexity: standard
206
+ stack: TanStack Start + Better Auth + Drizzle/Neon + tRPC-ish server fns + React Email + Sentry + Biome + AI SDK
207
+ whatToBorrow: >-
208
+ The "batteries included" counterpart to react-tanstarter, and the most complete
209
+ TanStack Start SaaS wiring found. Borrow the auth:generate script (generates the
210
+ Better Auth schema into Drizzle — a clean codegen contract for an auth layer), the
211
+ db:neon-setup and db:setup-vector scripts, the @react-email/components + preview-server
212
+ email layer with an email:dev script, the @sentry/tanstackstart-react instrumentation,
213
+ and the Biome-instead-of-ESLint/Prettier toolchain config.
214
+ whatToAvoid: >-
215
+ Only 290 stars and one maintainer — low bus factor, verify before depending on it.
216
+ It bundles a large AI surface (@ai-sdk/*, @openai/agents, @langchain/*, MCP SDK) that
217
+ is irrelevant to most SaaS scaffolds and should be stripped rather than carried; the
218
+ dependency tree is much heavier than the useful core. Neon-specific setup scripts need
219
+ generalising before they become a portable Postgres layer.
220
+ proposedLayerIds:
221
+ - framework-tanstack-start
222
+ - auth-better-auth
223
+ - db-postgres-drizzle
224
+ - email-react-email-resend
225
+ - observability-sentry
226
+ - tooling-biome
227
+ - ui-shadcn-tailwind
228
+ # jobs-inngest REMOVED 2026-07-18: package.json contains no inngest dependency at all.
229
+ # The repo has no background-job layer. (sentry, resend, react-email, biome all verified
230
+ # present.)
231
+
232
+ - name: Kiranism/next-shadcn-dashboard-starter
233
+ url: https://github.com/Kiranism/next-shadcn-dashboard-starter
234
+ stars: 6689
235
+ spdx: MIT
236
+ licenseClass: vendorable
237
+ maintained: true
238
+ lastCommit: "2026-07-18"
239
+ complexity: standard
240
+ stack: Next.js 15 + shadcn/ui + Clerk + TanStack Table/Query/Form + Sentry + Zod + Tailwind v4
241
+ whatToBorrow: >-
242
+ The strongest source for the authenticated-app-shell layer specifically: sidebar/nav
243
+ composition, parallel routes and route groups for dashboard sections, and a genuinely
244
+ good TanStack Table setup with server-side pagination/sorting/filtering driven by
245
+ URL search params (nuqs-style state). Borrow the data-table primitives, the
246
+ @tanstack/react-form + Zod form patterns, the Sentry config, and the feature-folder
247
+ layout under src/features/. Committed the day this research ran — very actively kept.
248
+ whatToAvoid: >-
249
+ Clerk is wired in as the default auth and is a hosted, paid-at-scale vendor — isolate
250
+ it behind an auth layer boundary rather than letting Clerk imports spread through the
251
+ UI. There is no database, no payments and no real backend: mock/fake data backs the
252
+ tables, so this is a UI-tier source only and must be composed with a data source.
253
+ proposedLayerIds:
254
+ - framework-nextjs-app-router
255
+ - ui-shadcn-tailwind
256
+ - ui-dashboard-shell
257
+ - auth-clerk
258
+ - observability-sentry
259
+ - forms-tanstack-zod
260
+ - table-tanstack-server-pagination
261
+
262
+ - name: ixartz/Next-js-Boilerplate
263
+ url: https://github.com/ixartz/Next-js-Boilerplate
264
+ stars: 13023
265
+ spdx: MIT
266
+ licenseClass: vendorable
267
+ maintained: true
268
+ lastCommit: "2026-07-08"
269
+ complexity: standard
270
+ stack: Next.js 15 + Drizzle + Clerk + next-intl + Sentry + Vitest + Playwright + Storybook + Arcjet
271
+ whatToBorrow: >-
272
+ The best-maintained "developer experience baseline" in the category — borrow the
273
+ tooling layer rather than the app. Specifically: the full CI matrix in
274
+ .github/workflows/, the ESLint flat-config, the Husky + lint-staged + commitlint
275
+ chain, semantic-release setup, the Vitest browser-mode + Playwright split, Storybook
276
+ wiring, and the Sentry + Arcjet (bot/rate-limit) integration. Its i18n via next-intl
277
+ is the cleanest reference implementation available.
278
+ whatToAvoid: >-
279
+ Very opinionated and dependency-dense for a "boilerplate"; the tooling surface is
280
+ larger than many teams want and upgrades are frequent enough to churn. Clerk and
281
+ Arcjet are hosted vendors baked into the defaults. Strip the marketing/demo pages.
282
+ proposedLayerIds:
283
+ - framework-nextjs-app-router
284
+ - db-postgres-drizzle
285
+ - auth-clerk
286
+ - i18n-next-intl
287
+ - observability-sentry
288
+ - testing-vitest
289
+ - testing-playwright
290
+ - tooling-eslint-prettier
291
+ - tooling-husky-commitlint
292
+ - ci-github-actions
293
+ - security-arcjet
294
+
295
+ - name: nextacular/nextacular
296
+ url: https://github.com/nextacular/nextacular
297
+ stars: 1376
298
+ spdx: MIT
299
+ licenseClass: vendorable
300
+ maintained: true
301
+ lastCommit: "2026-05-30"
302
+ complexity: standard
303
+ stack: Next.js + Prisma/Postgres + NextAuth + Stripe + i18next + workspaces/subdomain multi-tenancy
304
+ whatToBorrow: >-
305
+ The clearest open reference for real multi-tenancy: borrow the workspace model
306
+ (prisma/schema.prisma), the subdomain and custom-domain routing middleware, the
307
+ workspace-scoped member/invitation flow with email invites, and the tenant-scoped
308
+ query guards. Most starters here stop at "teams"; this one actually implements
309
+ subdomain tenancy end to end, which is the hard part to get right.
310
+ whatToAvoid: >-
311
+ Still Pages Router — the app structure is a generation behind and should be treated as
312
+ a domain-model reference, not a code-copy source for App Router projects. i18next
313
+ rather than next-intl. Modest star count and slow cadence; verify Prisma/NextAuth
314
+ versions before adopting.
315
+ proposedLayerIds:
316
+ - framework-nextjs-pages-router
317
+ - db-postgres-prisma
318
+ - auth-nextauth
319
+ - payments-stripe-subscriptions
320
+ - tenancy-subdomain-multitenant
321
+ - tenancy-organizations
322
+ - email-transactional-invites
323
+
324
+ - name: vercel/nextjs-subscription-payments
325
+ url: https://github.com/vercel/nextjs-subscription-payments
326
+ stars: 7722
327
+ spdx: MIT
328
+ licenseClass: vendorable
329
+ maintained: false
330
+ lastCommit: "2025-01-23"
331
+ complexity: standard
332
+ stack: Next.js App Router + Supabase (auth + Postgres + RLS) + Stripe subscriptions
333
+ whatToBorrow: >-
334
+ ARCHIVED but still the canonical reference for Stripe<->database subscription state
335
+ sync, which is the single most error-prone part of a SaaS build. Borrow
336
+ supabase/migrations/*.sql (products/prices/subscriptions tables mirroring Stripe's
337
+ object model), the RLS policies, and the webhook handler that upserts Stripe events
338
+ into those tables idempotently. Also a good Supabase Auth + SSR cookie reference.
339
+ whatToAvoid: >-
340
+ Archived by Vercel on GitHub — no upstream, no security updates, and its Next.js and
341
+ @supabase/* versions are pinned to early-2025. Do not track it; lift the SQL schema
342
+ and webhook logic and re-implement against current SDKs. Deeply Supabase-coupled.
343
+ proposedLayerIds:
344
+ - framework-nextjs-app-router
345
+ - db-supabase-postgres
346
+ - auth-supabase
347
+ - payments-stripe-subscriptions
348
+ - security-rls-policies
349
+ - deploy-vercel
350
+
351
+ # ---------------------------------------------------------- professional ---
352
+ - name: ixartz/SaaS-Boilerplate
353
+ url: https://github.com/ixartz/SaaS-Boilerplate
354
+ stars: 7291
355
+ spdx: MIT
356
+ licenseClass: vendorable
357
+ maintained: true
358
+ lastCommit: "2026-07-02"
359
+ complexity: professional
360
+ stack: Next.js 15 + Drizzle + Clerk (orgs/roles) + Stripe + next-intl + Sentry + Vitest/Playwright/Storybook
361
+ whatToBorrow: >-
362
+ The most complete MIT-licensed SaaS boilerplate that is still actively maintained.
363
+ Borrow the multi-tenant organization + role model built on Clerk Organizations, the
364
+ Stripe subscription/plan configuration split (plans declared as data, not inline), the
365
+ @t3-oss/env-nextjs config boundary, the dashboard shell, and the unusually thorough
366
+ test pyramid (Vitest browser mode + Playwright + Storybook + Chromatic). The i18n and
367
+ Sentry layers are shared with Next-js-Boilerplate and are equally solid.
368
+ whatToAvoid: >-
369
+ Multi-tenancy is implemented *through Clerk Organizations* — that is real vendor
370
+ lock-in at the data-model level, not just the login screen, and it is the main thing to
371
+ re-architect if you want a portable tenancy layer. Heavy dependency surface. The
372
+ author also sells a paid "Pro" variant, so the OSS repo intentionally stops short in
373
+ places (fewer prebuilt pages/components).
374
+ proposedLayerIds:
375
+ - framework-nextjs-app-router
376
+ - db-postgres-drizzle
377
+ - auth-clerk
378
+ - tenancy-organizations
379
+ - rbac-permissions
380
+ - payments-stripe-subscriptions
381
+ - i18n-next-intl
382
+ - observability-sentry
383
+ - testing-vitest
384
+ - testing-playwright
385
+ - ci-github-actions
386
+
387
+ - name: epicweb-dev/epic-stack
388
+ url: https://github.com/epicweb-dev/epic-stack
389
+ stars: 5542
390
+ spdx: MIT
391
+ licenseClass: vendorable
392
+ maintained: true
393
+ lastCommit: "2026-06-02"
394
+ complexity: professional
395
+ stack: React Router v7 (ex-Remix) + Prisma/SQLite(LiteFS) + hand-rolled auth + passkeys + TOTP 2FA + Fly.io
396
+ whatToBorrow: >-
397
+ Kent C. Dodds' production stack and the strongest non-Next.js entry. It owns its auth
398
+ instead of renting it: borrow the @simplewebauthn passkey registration/login flow, the
399
+ @epic-web/totp 2FA implementation, the session + "remember me" + email-verification
400
+ flows, and the permissions/roles seed. Also borrow the Conform + Zod progressive-
401
+ enhancement form pattern (works without JS), @epic-web/cachified caching, the
402
+ error-boundary conventions, and its very complete Playwright + MSW test setup.
403
+ Best available source for auth-passkeys and auth-2fa-totp layers.
404
+ whatToAvoid: >-
405
+ Strongly coupled to Fly.io + SQLite/LiteFS for its distributed-database story; that
406
+ deployment layer does not transfer to Vercel/Postgres and must be swapped. Large and
407
+ opinionated — it is a whole application, and stripping it down is real work. The
408
+ React Router v7 naming/migration churn means older docs and blog posts about "Epic
409
+ Stack Remix" no longer match the code.
410
+ proposedLayerIds:
411
+ - framework-react-router-v7
412
+ - db-sqlite-prisma
413
+ - auth-session-cookie
414
+ - auth-passkeys
415
+ - auth-2fa-totp
416
+ - rbac-permissions
417
+ - forms-conform-zod
418
+ - email-react-email-resend
419
+ - observability-sentry
420
+ - testing-playwright
421
+ - testing-msw
422
+ - deploy-fly-io
423
+
424
+ - name: alan2207/bulletproof-react
425
+ url: https://github.com/alan2207/bulletproof-react
426
+ stars: 35562
427
+ spdx: MIT
428
+ licenseClass: vendorable
429
+ maintained: true
430
+ lastCommit: "2026-05-14"
431
+ complexity: professional
432
+ stack: Architecture guide + reference apps (Next.js App Router, Next.js Pages, Vite React, React Native)
433
+ whatToBorrow: >-
434
+ Not a SaaS kit — the architecture rulebook that should govern how Groundplan lays out every
435
+ React template. Borrow the feature-sliced directory convention (src/features/<name>/
436
+ {api,components,hooks,stores,types}), the "no cross-feature imports" ESLint
437
+ import/no-restricted-paths rule (docs/ + .eslintrc), the unidirectional dependency
438
+ graph (shared -> features -> app), the api-layer/query-factory pattern over TanStack
439
+ Query, and the testing and error-handling docs. It ships four parallel reference apps,
440
+ so the same conventions can be applied per framework layer.
441
+ whatToAvoid: >-
442
+ Provides no auth, payments, tenancy or database — zero SaaS functionality, so it can
443
+ never be a standalone template, only a structural overlay. Some guidance is
444
+ deliberately generic and a few reference apps lag the newest framework releases.
445
+ Applying the full convention set to a tiny project is over-engineering.
446
+ proposedLayerIds:
447
+ - arch-feature-sliced
448
+ - lint-import-boundaries
449
+ - api-layer-tanstack-query
450
+ - testing-vitest
451
+ - testing-msw
452
+ - tooling-eslint-prettier
453
+
454
+ # ------------------------------------------------------------ enterprise ---
455
+ - name: Blazity/next-enterprise
456
+ url: https://github.com/Blazity/next-enterprise
457
+ stars: 7428
458
+ spdx: MIT
459
+ licenseClass: vendorable
460
+ maintained: true
461
+ lastCommit: "2026-05-18"
462
+ complexity: enterprise
463
+ stack: Next.js + OpenTelemetry/@vercel/otel + Storybook + Playwright + semantic-release + CVA + t3-env
464
+ whatToBorrow: >-
465
+ The governance and release-engineering layer, which no other entry here covers
466
+ properly. Borrow the OpenTelemetry setup (@opentelemetry/sdk-node + @vercel/otel
467
+ instrumentation.ts) as a vendor-neutral observability layer, the semantic-release
468
+ config with conventional commits and automated changelog, the bundle-analyzer and
469
+ bundle-size CI gates, the Storybook + test-runner + a11y setup, and the CVA
470
+ (class-variance-authority) component-variant conventions.
471
+ whatToAvoid: >-
472
+ "Enterprise" here means process and tooling, not application features — there is no
473
+ auth, no database, no payments, no tenancy, so it is an overlay rather than a SaaS
474
+ base. The Babel plugins in devDependencies signal some legacy tooling carried forward.
475
+ Storybook 7-era addon packages suggest parts of the toolchain are due an upgrade.
476
+ proposedLayerIds:
477
+ - framework-nextjs-app-router
478
+ - observability-opentelemetry
479
+ - release-semantic-release
480
+ - tooling-storybook
481
+ - tooling-t3-env
482
+ - testing-playwright
483
+ - ci-github-actions
484
+ - perf-bundle-budget
485
+
486
+ # CORRECTED 2026-07-18: was recorded as calcom/cal.com. github.com/calcom/cal.com
487
+ # 301-redirects here; this is a distinct MIT, enterprise-stripped distribution, NOT
488
+ # evidence that the Cal.com product relicensed. Do not source from cal.com itself.
489
+ - name: calcom/cal.diy
490
+ url: https://github.com/calcom/cal.diy
491
+ stars: 46574
492
+ spdx: MIT
493
+ licenseClass: vendorable
494
+ maintained: true
495
+ lastCommit: "2026-07-09"
496
+ complexity: enterprise
497
+ stack: Turborepo monorepo + Next.js + Prisma/Postgres + tRPC + NextAuth v4 + Stripe + next-i18next + app store
498
+ whatToBorrow: >-
499
+ A community MIT fork of Cal.com with all enterprise/commercial code removed — verified
500
+ MIT at raw LICENSE, and verified as the redirect target of the old cal.com URL. Rare in
501
+ being a genuine production-scale codebase that is safely vendorable. Borrow the Turborepo
502
+ layout (apps/web + packages/features + packages/ui + packages/prisma — all four confirmed
503
+ present) as the model for an enterprise monorepo layer, the tRPC router composition and
504
+ middleware, the app-store/plugin architecture under packages/app-store for extensibility,
505
+ the Prisma booking/availability domain model, and the webhook subsystem.
506
+ whatToAvoid: >-
507
+ DO NOT source from Cal.com itself — this repo is a stripped fork, not proof that the
508
+ Cal.com product relicensed; Cal.com remains open-core with commercially-licensed code.
509
+ Confirm you are on the cal.diy remote before copying anything.
510
+ Its README states Teams, Organizations, Insights, Workflows and SSO/SAML have been
511
+ REMOVED, so this is NOT a source for tenancy, org/seat modelling or seat-based billing —
512
+ an earlier revision of this file wrongly claimed all three. Dependencies are dated:
513
+ next-auth 4.24, stripe 9.16, @stripe/stripe-js 1.35, i18next 23 — pin and re-validate.
514
+ Enormous, with a deeply interlinked internal dependency web; extraction is surgical work.
515
+ MIT attribution still required. Long build and setup times.
516
+ proposedLayerIds:
517
+ - tooling-turborepo
518
+ - framework-nextjs-app-router
519
+ - db-postgres-prisma
520
+ - api-trpc
521
+ - auth-nextauth
522
+ # tenancy-organizations / rbac-permissions / payments-stripe-seats REMOVED 2026-07-18:
523
+ # README confirms Teams, Organizations and SSO/SAML were stripped from this fork.
524
+ # i18n corrected: package.json shows next-i18next + i18next, NOT next-intl.
525
+ - i18n-next-i18next
526
+ - webhooks-outbound
527
+ - plugin-app-store
528
+
529
+ - name: supabase/supabase
530
+ url: https://github.com/supabase/supabase
531
+ stars: 106526
532
+ spdx: Apache-2.0
533
+ licenseClass: vendorable
534
+ maintained: true
535
+ lastCommit: "2026-07-18"
536
+ complexity: enterprise
537
+ stack: Turborepo monorepo — Studio (Next.js), docs, and dozens of framework starter examples
538
+ whatToBorrow: >-
539
+ Treat as a library of verified starters rather than one template: examples/ contains
540
+ maintained Next.js, React Router, SvelteKit, Nuxt and Expo integrations, and
541
+ examples/user-management/* plus the auth SSR helpers are the reference for cookie-based
542
+ Supabase auth in App Router. Borrow the RLS policy patterns and SQL migrations under
543
+ supabase/migrations, the local-dev docker-compose stack, the type-generation flow
544
+ (supabase gen types typescript) as a db-codegen layer contract, and Studio's own
545
+ dashboard architecture as an enterprise UI reference.
546
+ whatToAvoid: >-
547
+ Apache-2.0 carries a real attribution obligation the MIT entries do not: retain the
548
+ license text and any copyright/attribution headers on copied files, and state changes
549
+ you make. (Verified 2026-07-18: there is no NOTICE file in this repo — root /NOTICE
550
+ 404s — so the §4(d) NOTICE-propagation duty does not apply here; an earlier revision of
551
+ this file wrongly said a NOTICE must be preserved. The other §4 duties still apply.) The monorepo is huge and mostly irrelevant to a scaffold; take only
552
+ examples/ and the SQL. Everything assumes Supabase-hosted or self-hosted Supabase, so
553
+ the auth and storage layers are not portable to a plain Postgres target without work.
554
+ proposedLayerIds:
555
+ - db-supabase-postgres
556
+ - auth-supabase
557
+ - security-rls-policies
558
+ - db-codegen-types
559
+ - storage-supabase
560
+ - realtime-supabase
561
+ - deploy-docker
562
+
563
+ droppedCandidates:
564
+ - "theodorusclarence/ts-nextjs-tailwind-starter — 3417 stars, active (2025-07-24), but NO license file exists (LICENSE/LICENSE.md/LICENSE.txt/license/COPYING all return 404 and GitHub detects no license). Absence of a license means all rights reserved => EXCLUDED, not permissive. Would otherwise have been a strong 'simple' entry."
565
+ - "dubinc/dub — 24077 stars, very active. LICENSE.md re-verified 2026-07-18: it is a SPLIT open-core license ('Portions of this software are licensed as follows...') combining AGPL-3.0 with commercially-licensed portions, not plain AGPL-3.0 as first recorded. EXCLUDED either way — both halves fail the gate."
566
+ - "documenso/documenso — AGPL-3.0 (verified from LICENSE text), 13964 stars, active. EXCLUDED for the same reason; also has a paid enterprise tier."
567
+ - "formbricks/formbricks — 12563 stars, active. LICENSE re-verified 2026-07-18: SPLIT open-core license ('Portions of this software are licensed as follows'), AGPL-3.0 plus commercial portions, not plain AGPL-3.0. EXCLUDED either way."
568
+ - "midday-ai/midday — AGPL-3.0 (verified from LICENSE text), 14592 stars, active. EXCLUDED. Frequently recommended as a modern monorepo SaaS reference — worth reading for ideas only, never copying."
569
+ - "unkeyed/unkey — 5394 stars, active. LICENSE re-verified 2026-07-18: SPLIT open-core license ('Portions of this software are licensed as follows'), not plain AGPL-3.0. EXCLUDED either way."
570
+ - "shadcn-ui/taxonomy — MIT, 19272 stars. Not GitHub-archived, and its most recent commit (2026-04-20) is the archive notice itself; the README now states the project is officially archived, uses deprecated Next.js 13-era APIs and is 'not recommended for use in production'. Dropped as a dead source despite the permissive license and high star count."
571
+ - "steven-tey/precedent — MIT, 5109 stars, last commit 2024-10-02 (~21 months) => STALE by the 18-month rule."
572
+ - "mickasmt/next-saas-stripe-starter — MIT, 2997 stars, last commit 2024-07-26 (~24 months) => STALE."
573
+ - "sadmann7/skateshop — MIT, 5458 stars, last commit 2024-07-15 (~24 months) => STALE. Good Stripe Connect marketplace reference historically, but unmaintained."
574
+ - "juliusmarminge/acme-corp — MIT, 1176 stars, last commit 2024-01-19 (~30 months) => STALE. Was a good T3-turbo SaaS monorepo reference."
575
+ - "async-labs/saas — MIT, 4492 stars, last commit 2025-03-21 (~16 months, just inside the staleness window) but the stack (Next.js Pages Router + MobX + Express) is a full generation out of date. Dropped on practical grounds rather than the date rule."
576
+ - "remix-run/indie-stack — MIT, 1143 stars, ARCHIVED on GitHub. Superseded by epicweb-dev/epic-stack, which is included above."
577
+ - "saas-js/saas-ui — MIT, 1635 stars, very active (2026-07-18), but the OSS repo is a Chakra UI component library, not a SaaS starter; the actual 'SaaS starter kit' is the paid Pro product. Open-core split makes it weak source material for a scaffolder."
578
+
579
+ notes: >-
580
+ Verification caveat stated plainly: the unauthenticated api.github.com JSON API (60 req/hr
581
+ per IP) was fully consumed by concurrent sibling research workflows sharing this machine's
582
+ IP, and WebFetch against api.github.com returned 403 as well. Rather than report unverified
583
+ numbers, every figure above was taken from an alternative GitHub primary source — the
584
+ rendered repo page for exact star counts and archived status, the commits Atom feed for
585
+ last-commit dates, and the raw LICENSE file text for licensing. Licenses are therefore
586
+ verified more strongly than an spdx_id lookup would provide, because the actual license
587
+ text was fetched and pattern-matched against canonical license bodies, then cross-checked
588
+ against GitHub's own license classification. No number here comes from memory or a blog post.
589
+
590
+ CORRECTION (adversarial pass, 2026-07-18): the previous headline finding here — "calcom/cal.com
591
+ has relicensed to MIT" — was FALSE and has been removed. What actually happened is that
592
+ github.com/calcom/cal.com 301-redirects to github.com/calcom/cal.diy, an MIT-licensed
593
+ community fork with all enterprise/commercial code stripped, and raw.githubusercontent
594
+ silently follows the rename. Cal.com the product has NOT relicensed; it remains open-core.
595
+ The entry has been retargeted to calcom/cal.diy, where MIT is genuine and verified. The
596
+ practical consequence: the enterprise tier gains an MIT monorepo/tRPC/app-store reference,
597
+ but NOT an orgs/tenancy/seat-billing reference — cal.diy's README confirms Teams,
598
+ Organizations, Insights, Workflows and SSO/SAML were removed from the fork. Tenancy coverage
599
+ therefore still rests on nextacular (subdomain tenancy) and ixartz/SaaS-Boilerplate
600
+ (Clerk Organizations). Treat any "cal.com is MIT now" claim elsewhere as the same redirect trap.
601
+
602
+ The AGPL-3.0 cluster (dub, documenso, formbricks, midday, unkey) is large,
603
+ popular and actively recommended across the ecosystem; all five are hard-excluded here
604
+ because copying from them would force network copyleft onto every repo Groundplan generates.
605
+ That is the most likely license trap for this category and is called out explicitly.
606
+
607
+ Coverage: the strongest tiers are standard and professional. The simple tier is thin — the
608
+ best minimal candidate (ts-nextjs-tailwind-starter) had to be excluded for having no license
609
+ at all, leaving Skolaczk/next-starter and dotnize/react-tanstarter, both single-maintainer
610
+ projects. Consider authoring the simple tier in-house rather than sourcing it. Non-Next.js
611
+ coverage rests on epic-stack (React Router v7) and two TanStack Start entries; TanStack Start
612
+ is moving fast enough that anything borrowed needs version pinning. Note also that several
613
+ entries are overlays rather than bases — bulletproof-react, next-enterprise and
614
+ Next-js-Boilerplate contribute architecture, release engineering and tooling layers but ship
615
+ no SaaS features, so the build plan should compose them onto nextjs/saas-starter or
616
+ SaaS-Boilerplate rather than treating them as standalone templates. Only supabase/supabase is
617
+ Apache-2.0 and thus carries an attribution obligation (license text + copyright headers +
618
+ change notices; note there is no NOTICE file in that repo, so no NOTICE duty attaches); every
619
+ other included source is MIT except react-tanstarter, which is Unlicense (public domain, zero
620
+ attribution burden).
621
+
622
+ Layer-id hygiene (adversarial pass, 2026-07-18): three ids asserted capabilities the repos do
623
+ not have and were removed or renamed — jobs-inngest on fullstack-start-template (no inngest
624
+ dependency anywhere in package.json), and api-server-actions / deploy-docker on
625
+ react-tanstarter (a Next.js concept misapplied to TanStack Start server functions; and no
626
+ Dockerfile exists, only a local-Postgres docker-compose.yml). tenancy-rbac and rbac-permissions
627
+ were two ids for one concept across three entries and are now normalised to rbac-permissions.
628
+ cal.diy's i18n-next-intl was corrected to i18n-next-i18next per its package.json. All 15
629
+ entries survive the license gate; no entry was dropped in this pass.