@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.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/adapters/README.md +155 -0
- package/adapters/_shared/README.md +16 -0
- package/adapters/aider/adapter.yaml +30 -0
- package/adapters/aider/templates/.aider.conf.yml.tmpl +5 -0
- package/adapters/amp/adapter.yaml +32 -0
- package/adapters/amp/templates/SKILL.md.tmpl +8 -0
- package/adapters/antigravity-cli/adapter.yaml +36 -0
- package/adapters/antigravity-cli/templates/ANTIGRAVITY.md.tmpl +11 -0
- package/adapters/claude-code/adapter.yaml +65 -0
- package/adapters/claude-code/templates/CLAUDE.md.tmpl +24 -0
- package/adapters/claude-code/templates/SKILL.md.tmpl +8 -0
- package/adapters/claude-code/templates/agent.md.tmpl +9 -0
- package/adapters/claude-code/templates/command.md.tmpl +6 -0
- package/adapters/claude-code/templates/rule.md.tmpl +8 -0
- package/adapters/claude-code/templates/settings.json.tmpl +11 -0
- package/adapters/cline/adapter.yaml +31 -0
- package/adapters/cline/templates/rule.md.tmpl +8 -0
- package/adapters/codex/adapter.yaml +29 -0
- package/adapters/continue/adapter.yaml +36 -0
- package/adapters/continue/templates/00-agents-md.md.tmpl +9 -0
- package/adapters/continue/templates/rule.md.tmpl +8 -0
- package/adapters/cursor/adapter.yaml +34 -0
- package/adapters/cursor/templates/rule.mdc.tmpl +9 -0
- package/adapters/gemini-cli/adapter.yaml +51 -0
- package/adapters/gemini-cli/templates/GEMINI.md.tmpl +9 -0
- package/adapters/gemini-cli/templates/command.toml.tmpl +4 -0
- package/adapters/github-copilot/adapter.yaml +44 -0
- package/adapters/github-copilot/templates/instructions.md.tmpl +8 -0
- package/adapters/github-copilot/templates/prompt.prompt.md.tmpl +6 -0
- package/adapters/opencode/adapter.yaml +18 -0
- package/adapters/opencode/templates/opencode.json.tmpl +4 -0
- package/adapters/roo-code/adapter.yaml +21 -0
- package/adapters/roo-code/templates/rule.md.tmpl +5 -0
- package/adapters/windsurf/adapter.yaml +34 -0
- package/adapters/windsurf/templates/agents-md.md.tmpl +12 -0
- package/adapters/windsurf/templates/rule.md.tmpl +9 -0
- package/adapters/windsurf/templates/workflow.md.tmpl +7 -0
- package/adapters/zed/adapter.yaml +14 -0
- package/catalog/README.md +62 -0
- package/catalog/architectures/agentic-tool-loop.yaml +62 -0
- package/catalog/architectures/bff.yaml +58 -0
- package/catalog/architectures/clean.yaml +61 -0
- package/catalog/architectures/cqrs.yaml +58 -0
- package/catalog/architectures/ddd-tactical.yaml +68 -0
- package/catalog/architectures/event-driven.yaml +59 -0
- package/catalog/architectures/feature-sliced-design.yaml +61 -0
- package/catalog/architectures/hexagonal.yaml +60 -0
- package/catalog/architectures/lakehouse.yaml +63 -0
- package/catalog/architectures/layered.yaml +60 -0
- package/catalog/architectures/llm-workflow.yaml +59 -0
- package/catalog/architectures/medallion.yaml +60 -0
- package/catalog/architectures/micro-frontends.yaml +60 -0
- package/catalog/architectures/microservices.yaml +62 -0
- package/catalog/architectures/modular-monolith.yaml +62 -0
- package/catalog/architectures/monolith.yaml +61 -0
- package/catalog/architectures/multi-agent.yaml +61 -0
- package/catalog/architectures/mvc-mvvm.yaml +62 -0
- package/catalog/architectures/nextjs-colocation.yaml +67 -0
- package/catalog/architectures/onion.yaml +60 -0
- package/catalog/architectures/pipes-and-filters.yaml +59 -0
- package/catalog/architectures/rag-hybrid.yaml +62 -0
- package/catalog/architectures/serverless.yaml +58 -0
- package/catalog/architectures/vertical-slice.yaml +61 -0
- package/catalog/characteristics.yaml +165 -0
- package/catalog/decision.yaml +309 -0
- package/catalog/sources/README.md +697 -0
- package/catalog/sources/agent-tooling.yaml +1180 -0
- package/catalog/sources/ai-llm.yaml +508 -0
- package/catalog/sources/auth.yaml +618 -0
- package/catalog/sources/backend-api.yaml +720 -0
- package/catalog/sources/cms-ecommerce.yaml +558 -0
- package/catalog/sources/data-engineering.yaml +618 -0
- package/catalog/sources/database-orm.yaml +507 -0
- package/catalog/sources/devops-cicd.yaml +422 -0
- package/catalog/sources/frontend-ui.yaml +654 -0
- package/catalog/sources/fullstack-saas.yaml +629 -0
- package/catalog/sources/game-3d.yaml +834 -0
- package/catalog/sources/gaps.md +268 -0
- package/catalog/sources/layer-plan.yaml +3919 -0
- package/catalog/sources/mobile-desktop.yaml +638 -0
- package/catalog/sources/observability.yaml +1364 -0
- package/catalog/sources/payments-billing.yaml +553 -0
- package/catalog/sources/realtime-messaging.yaml +787 -0
- package/catalog/sources/security-compliance.yaml +613 -0
- package/catalog/sources/testing.yaml +652 -0
- package/dist/adapters.d.ts +43 -0
- package/dist/adapters.js +181 -0
- package/dist/adapters.js.map +1 -0
- package/dist/agentkit.d.ts +65 -0
- package/dist/agentkit.js +183 -0
- package/dist/agentkit.js.map +1 -0
- package/dist/apply.d.ts +21 -0
- package/dist/apply.js +135 -0
- package/dist/apply.js.map +1 -0
- package/dist/condition.d.ts +14 -0
- package/dist/condition.js +121 -0
- package/dist/condition.js.map +1 -0
- package/dist/config.d.ts +36 -0
- package/dist/config.js +131 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/intent.d.ts +52 -0
- package/dist/intent.js +220 -0
- package/dist/intent.js.map +1 -0
- package/dist/license.d.ts +11 -0
- package/dist/license.js +68 -0
- package/dist/license.js.map +1 -0
- package/dist/loader.d.ts +12 -0
- package/dist/loader.js +118 -0
- package/dist/loader.js.map +1 -0
- package/dist/merge.d.ts +28 -0
- package/dist/merge.js +412 -0
- package/dist/merge.js.map +1 -0
- package/dist/plan.d.ts +12 -0
- package/dist/plan.js +206 -0
- package/dist/plan.js.map +1 -0
- package/dist/python-data.json +575 -0
- package/dist/python-requirements.d.ts +7 -0
- package/dist/python-requirements.js +79 -0
- package/dist/python-requirements.js.map +1 -0
- package/dist/recommend.d.ts +27 -0
- package/dist/recommend.js +68 -0
- package/dist/recommend.js.map +1 -0
- package/dist/resolve.d.ts +22 -0
- package/dist/resolve.js +132 -0
- package/dist/resolve.js.map +1 -0
- package/dist/schema.d.ts +878 -0
- package/dist/schema.js +307 -0
- package/dist/schema.js.map +1 -0
- package/dist/tokens.d.ts +42 -0
- package/dist/tokens.js +90 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +61 -0
- package/registry/README.md +194 -0
- package/registry/agents/architecture-reviewer/agent.md +59 -0
- package/registry/agents/architecture-reviewer/agent.yaml +7 -0
- package/registry/agents/breaking-change-detector/agent.md +83 -0
- package/registry/agents/breaking-change-detector/agent.yaml +7 -0
- package/registry/agents/security-reviewer/agent.md +63 -0
- package/registry/agents/security-reviewer/agent.yaml +7 -0
- package/registry/agents/solid-reviewer/agent.md +61 -0
- package/registry/agents/solid-reviewer/agent.yaml +7 -0
- package/registry/agents/spec-consistency-checker/agent.md +70 -0
- package/registry/agents/spec-consistency-checker/agent.yaml +7 -0
- package/registry/agents/test-coverage-reviewer/agent.md +67 -0
- package/registry/agents/test-coverage-reviewer/agent.yaml +7 -0
- package/registry/commands/adr/command.md +80 -0
- package/registry/commands/adr/command.yaml +7 -0
- package/registry/commands/breaking/command.md +72 -0
- package/registry/commands/breaking/command.yaml +7 -0
- package/registry/commands/done/command.md +50 -0
- package/registry/commands/done/command.yaml +7 -0
- package/registry/commands/handoff/command.md +65 -0
- package/registry/commands/handoff/command.yaml +7 -0
- package/registry/commands/plan/command.md +81 -0
- package/registry/commands/plan/command.yaml +7 -0
- package/registry/commands/review/command.md +54 -0
- package/registry/commands/review/command.yaml +8 -0
- package/registry/commands/scope/command.md +45 -0
- package/registry/commands/scope/command.yaml +7 -0
- package/registry/commands/spec/command.md +81 -0
- package/registry/commands/spec/command.yaml +7 -0
- package/registry/commands/tasks/command.md +70 -0
- package/registry/commands/tasks/command.yaml +7 -0
- package/registry/commands/verify/command.md +43 -0
- package/registry/commands/verify/command.yaml +7 -0
- package/registry/hooks/_lib/config.ps1 +116 -0
- package/registry/hooks/_lib/config.sh +143 -0
- package/registry/hooks/_lib/defaults.json +76 -0
- package/registry/hooks/_lib/json_get.mjs +59 -0
- package/registry/hooks/_lib/json_get.py +60 -0
- package/registry/hooks/architecture-boundary-check/hook.ps1 +46 -0
- package/registry/hooks/architecture-boundary-check/hook.sh +49 -0
- package/registry/hooks/architecture-boundary-check/hook.yaml +18 -0
- package/registry/hooks/conventional-commit-check/hook.ps1 +68 -0
- package/registry/hooks/conventional-commit-check/hook.sh +68 -0
- package/registry/hooks/conventional-commit-check/hook.yaml +16 -0
- package/registry/hooks/format-on-write/hook.ps1 +36 -0
- package/registry/hooks/format-on-write/hook.sh +33 -0
- package/registry/hooks/format-on-write/hook.yaml +14 -0
- package/registry/hooks/guard-protected-paths/hook.ps1 +34 -0
- package/registry/hooks/guard-protected-paths/hook.sh +35 -0
- package/registry/hooks/guard-protected-paths/hook.yaml +14 -0
- package/registry/hooks/no-secrets/hook.ps1 +67 -0
- package/registry/hooks/no-secrets/hook.sh +56 -0
- package/registry/hooks/no-secrets/hook.yaml +16 -0
- package/registry/skills/adr-write/SKILL.md +127 -0
- package/registry/skills/adr-write/references/adr-template.md +143 -0
- package/registry/skills/adr-write/references/when-to-write-an-adr.md +74 -0
- package/registry/skills/adr-write/skill.yaml +7 -0
- package/registry/skills/architecture-guard/SKILL.md +150 -0
- package/registry/skills/architecture-guard/references/boundary-patterns.md +142 -0
- package/registry/skills/architecture-guard/references/violation-catalog.md +149 -0
- package/registry/skills/architecture-guard/skill.yaml +7 -0
- package/registry/skills/handoff/SKILL.md +125 -0
- package/registry/skills/handoff/references/agent-protocol.md +128 -0
- package/registry/skills/handoff/references/handoff-template.md +116 -0
- package/registry/skills/handoff/skill.yaml +7 -0
- package/registry/skills/onboard/SKILL.md +120 -0
- package/registry/skills/onboard/references/discovery-checklist.md +129 -0
- package/registry/skills/onboard/references/repo-map-template.md +120 -0
- package/registry/skills/onboard/skill.yaml +7 -0
- package/registry/skills/perf-budget/SKILL.md +152 -0
- package/registry/skills/perf-budget/references/budget-catalog.md +165 -0
- package/registry/skills/perf-budget/references/measurement-sources.md +163 -0
- package/registry/skills/perf-budget/skill.yaml +7 -0
- package/registry/skills/security-review/SKILL.md +145 -0
- package/registry/skills/security-review/references/owasp-checklist.md +190 -0
- package/registry/skills/security-review/references/secret-patterns.md +110 -0
- package/registry/skills/security-review/skill.yaml +7 -0
- package/registry/skills/spec-driven/SKILL.md +124 -0
- package/registry/skills/spec-driven/references/phase-gates.md +115 -0
- package/registry/skills/spec-driven/references/plan-template.md +98 -0
- package/registry/skills/spec-driven/references/spec-template.md +101 -0
- package/registry/skills/spec-driven/references/tasks-template.md +96 -0
- package/registry/skills/spec-driven/skill.yaml +7 -0
- package/registry/skills/test-first/SKILL.md +125 -0
- package/registry/skills/test-first/references/anti-patterns.md +178 -0
- package/registry/skills/test-first/references/test-design.md +156 -0
- package/registry/skills/test-first/skill.yaml +7 -0
- package/templates/README.md +104 -0
- package/templates/agent-kits/core/blueprint.yaml +39 -0
- package/templates/agent-kits/core/files/.agent/ACTIVE.md +25 -0
- package/templates/agent-kits/core/files/.agent/DECISIONS.md +27 -0
- package/templates/agent-kits/core/files/.agent/DELEGATION.md +30 -0
- package/templates/agent-kits/core/files/.agent/DONE.md +9 -0
- package/templates/agent-kits/core/files/.agent/HANDOFF.md +38 -0
- package/templates/agent-kits/core/files/.agent/delegate.mjs +352 -0
- package/templates/agent-kits/core/files/.agent/delegation-tools.json +1 -0
- package/templates/agent-kits/core/files/.agent/delegation.yaml +33 -0
- package/templates/agent-kits/core/files/AGENTS.md +107 -0
- package/templates/agent-kits/core/files/docs/ARCHITECTURE.md +26 -0
- package/templates/agent-kits/core/files/docs/adr/0001-record-architecture-decisions.md +27 -0
- package/templates/agent-kits/core/files/specs/000-template/plan.md +48 -0
- package/templates/agent-kits/core/files/specs/000-template/spec.md +45 -0
- package/templates/agent-kits/core/files/specs/000-template/tasks.md +21 -0
- package/templates/agent-kits/core/files/specs/README.md +32 -0
- package/templates/architectures/agentic-tool-loop/blueprint.yaml +137 -0
- package/templates/architectures/agentic-tool-loop/files/.importlinter +47 -0
- package/templates/architectures/agentic-tool-loop/files/docs/architecture/agentic-tool-loop.node.md +83 -0
- package/templates/architectures/agentic-tool-loop/files/docs/architecture/agentic-tool-loop.python.md +93 -0
- package/templates/architectures/agentic-tool-loop/files/package.json +6 -0
- package/templates/architectures/agentic-tool-loop/files/pyproject.toml +5 -0
- package/templates/architectures/agentic-tool-loop/files/scripts/check-agent-loop.mjs +227 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/__init__.py +20 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/loop.py +112 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/model.py +50 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/sandbox.py +62 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/settings.py +69 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/__init__.py +6 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/current_time.py +27 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/registry.py +44 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/spec.py +29 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/tools/write_note.py +36 -0
- package/templates/architectures/agentic-tool-loop/files/src/__solutionName.snake__/agent/trace.py +33 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/config.ts +65 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/index.ts +8 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/loop.ts +117 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/model.ts +35 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/sandbox.ts +52 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/tools/current-time.ts +13 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/tools/registry.ts +49 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/tools/types.ts +26 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/tools/write-note.ts +23 -0
- package/templates/architectures/agentic-tool-loop/files/src/agent/trace.ts +26 -0
- package/templates/architectures/agentic-tool-loop/files/tests/architecture/test_agent_loop.py +167 -0
- package/templates/architectures/bff/blueprint.yaml +83 -0
- package/templates/architectures/bff/files/docs/architecture/bff.node.md +115 -0
- package/templates/architectures/bff/files/docs/architecture/bff.typescript.md +113 -0
- package/templates/architectures/bff/files/scripts/check-bff-boundaries.mjs +223 -0
- package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/aggregate.ts +38 -0
- package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/config.ts +30 -0
- package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/dto.ts +21 -0
- package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/index.ts +6 -0
- package/templates/architectures/bff/files/src/bff/__primaryClient.kebab__/routes.ts +21 -0
- package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/aggregate.ts +23 -0
- package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/config.ts +26 -0
- package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/dto.ts +16 -0
- package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/index.ts +6 -0
- package/templates/architectures/bff/files/src/bff/__secondaryClient.kebab__/routes.ts +21 -0
- package/templates/architectures/bff/files/src/downstream/config.ts +35 -0
- package/templates/architectures/bff/files/src/downstream/http-client.ts +41 -0
- package/templates/architectures/bff/files/src/downstream/index.ts +9 -0
- package/templates/architectures/bff/files/src/downstream/orders-client.ts +23 -0
- package/templates/architectures/bff/files/src/downstream/profile-client.ts +18 -0
- package/templates/architectures/clean/blueprint.yaml +147 -0
- package/templates/architectures/clean/files/.importlinter +35 -0
- package/templates/architectures/clean/files/Directory.Packages.props +7 -0
- package/templates/architectures/clean/files/__solutionName.dot__.slnx +10 -0
- package/templates/architectures/clean/files/docs/architecture/clean.md +87 -0
- package/templates/architectures/clean/files/eslint.config.architecture.mjs +27 -0
- package/templates/architectures/clean/files/internal/application/doc.go +2 -0
- package/templates/architectures/clean/files/internal/application/ports/doc.go +2 -0
- package/templates/architectures/clean/files/internal/architecture/architecture_test.go +166 -0
- package/templates/architectures/clean/files/internal/architecture/doc.go +3 -0
- package/templates/architectures/clean/files/internal/domain/doc.go +2 -0
- package/templates/architectures/clean/files/internal/infrastructure/doc.go +2 -0
- package/templates/architectures/clean/files/pyproject.toml +2 -0
- package/templates/architectures/clean/files/scripts/check-architecture.mjs +68 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Application/Abstractions/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Application/AssemblyMarker.cs +10 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Application/UseCases/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Application/__solutionName.dot__.Application.csproj +14 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/AssemblyMarker.cs +10 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/Entities/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/Events/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/ValueObjects/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Domain/__solutionName.dot__.Domain.csproj +11 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/AssemblyMarker.cs +10 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/External/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/Persistence/.gitkeep +1 -0
- package/templates/architectures/clean/files/src/__solutionName.dot__.Infrastructure/__solutionName.dot__.Infrastructure.csproj +14 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/application/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/application/ports/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/application/use_cases/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/domain/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/domain/entities/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/domain/events/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/infrastructure/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/infrastructure/external/__init__.py +1 -0
- package/templates/architectures/clean/files/src/__solutionName.snake__/infrastructure/persistence/__init__.py +1 -0
- package/templates/architectures/clean/files/src/application/ports/README.md +1 -0
- package/templates/architectures/clean/files/src/application/use-cases/README.md +1 -0
- package/templates/architectures/clean/files/src/domain/README.md +1 -0
- package/templates/architectures/clean/files/src/infrastructure/README.md +1 -0
- package/templates/architectures/clean/files/tests/__solutionName.dot__.ArchitectureTests/DependencyRuleTests.cs +118 -0
- package/templates/architectures/clean/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +27 -0
- package/templates/architectures/cqrs/blueprint.yaml +134 -0
- package/templates/architectures/cqrs/files/.importlinter +26 -0
- package/templates/architectures/cqrs/files/Directory.Packages.props +7 -0
- package/templates/architectures/cqrs/files/__solutionName.dot__.slnx +11 -0
- package/templates/architectures/cqrs/files/docs/architecture/cqrs.dotnet.md +116 -0
- package/templates/architectures/cqrs/files/docs/architecture/cqrs.node.md +117 -0
- package/templates/architectures/cqrs/files/docs/architecture/cqrs.python.md +107 -0
- package/templates/architectures/cqrs/files/eslint.config.cqrs.mjs +29 -0
- package/templates/architectures/cqrs/files/pyproject.toml +2 -0
- package/templates/architectures/cqrs/files/scripts/check-cqrs-boundaries.mjs +132 -0
- package/templates/architectures/cqrs/files/src/__contextName.kebab__/commands/index.ts +15 -0
- package/templates/architectures/cqrs/files/src/__contextName.kebab__/domain/index.ts +10 -0
- package/templates/architectures/cqrs/files/src/__contextName.kebab__/queries/index.ts +13 -0
- package/templates/architectures/cqrs/files/src/__contextName.kebab__/read-models/index.ts +7 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/AssemblyMarker.cs +9 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/ICommandHandler.cs +12 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/IQueryHandler.cs +10 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.Abstractions/__solutionName.dot__.Abstractions.csproj +11 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Commands/AssemblyMarker.cs +9 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Commands/Handlers/.gitkeep +2 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Commands/__solutionName.dot__.__contextName.pascal__.Commands.csproj +15 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Domain/Aggregates/.gitkeep +2 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Domain/AssemblyMarker.cs +9 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Domain/__solutionName.dot__.__contextName.pascal__.Domain.csproj +11 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/AssemblyMarker.cs +9 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/Handlers/.gitkeep +2 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/ReadModels/.gitkeep +2 -0
- package/templates/architectures/cqrs/files/src/__solutionName.dot__.__contextName.pascal__.Queries/__solutionName.dot__.__contextName.pascal__.Queries.csproj +14 -0
- package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/__init__.py +6 -0
- package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/commands/__init__.py +15 -0
- package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/domain/__init__.py +9 -0
- package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/queries/__init__.py +14 -0
- package/templates/architectures/cqrs/files/src/__solutionName.snake__/__contextName.snake__/read_models/__init__.py +14 -0
- package/templates/architectures/cqrs/files/tests/ArchitectureTests/ArchitectureTests.csproj +33 -0
- package/templates/architectures/cqrs/files/tests/ArchitectureTests/CqrsBoundaryTests.cs +104 -0
- package/templates/architectures/event-driven/blueprint.yaml +163 -0
- package/templates/architectures/event-driven/files/.importlinter +43 -0
- package/templates/architectures/event-driven/files/Directory.Packages.props +11 -0
- package/templates/architectures/event-driven/files/__solutionName.dot__.slnx +11 -0
- package/templates/architectures/event-driven/files/docs/architecture/event-driven.dotnet.md +117 -0
- package/templates/architectures/event-driven/files/docs/architecture/event-driven.node.md +98 -0
- package/templates/architectures/event-driven/files/docs/architecture/event-driven.python.md +100 -0
- package/templates/architectures/event-driven/files/scripts/check-event-boundaries.mjs +181 -0
- package/templates/architectures/event-driven/files/src/EventCatalog/EventCatalog.csproj +11 -0
- package/templates/architectures/event-driven/files/src/EventCatalog/EventContract.cs +36 -0
- package/templates/architectures/event-driven/files/src/EventCatalog/EventEnvelope.cs +10 -0
- package/templates/architectures/event-driven/files/src/EventCatalog/EventRegistry.cs +16 -0
- package/templates/architectures/event-driven/files/src/EventCatalog/EventSchemaException.cs +19 -0
- package/templates/architectures/event-driven/files/src/EventCatalog/__eventDomain.pascal__/__firstEvent.pascal__V1.cs +20 -0
- package/templates/architectures/event-driven/files/src/EventHandlers/EventHandlers.csproj +14 -0
- package/templates/architectures/event-driven/files/src/EventHandlers/__firstHandler.pascal__/__firstHandler.pascal__Handler.cs +32 -0
- package/templates/architectures/event-driven/files/src/EventHandlers/__secondHandler.pascal__/__secondHandler.pascal__Handler.cs +30 -0
- package/templates/architectures/event-driven/files/src/EventPublishers/EventPublishers.csproj +14 -0
- package/templates/architectures/event-driven/files/src/EventPublishers/__eventDomain.pascal__/__eventDomain.pascal__Publisher.cs +27 -0
- package/templates/architectures/event-driven/files/src/Messaging/Adapters/InMemoryEventBroker.cs +107 -0
- package/templates/architectures/event-driven/files/src/Messaging/BrokerOptions.cs +19 -0
- package/templates/architectures/event-driven/files/src/Messaging/IEventBroker.cs +6 -0
- package/templates/architectures/event-driven/files/src/Messaging/IEventPublisher.cs +9 -0
- package/templates/architectures/event-driven/files/src/Messaging/IEventSubscriber.cs +11 -0
- package/templates/architectures/event-driven/files/src/Messaging/Messaging.csproj +18 -0
- package/templates/architectures/event-driven/files/src/Messaging/MessagingRegistration.cs +36 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/__init__.py +17 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/adapters/__init__.py +1 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/adapters/in_memory.py +61 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/config.py +42 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/factory.py +13 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/broker/port.py +25 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/eventing.py +26 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__eventDomain.snake__/__firstEvent.snake__/__init__.py +5 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__eventDomain.snake__/__firstEvent.snake__/v1.py +34 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__eventDomain.snake__/__init__.py +1 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/__init__.py +27 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/contract.py +35 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/events/envelope.py +24 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/handlers/__firstHandler.snake__/__init__.py +30 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/handlers/__init__.py +1 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/handlers/__secondHandler.snake__/__init__.py +25 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/publishers/__eventDomain.snake__.py +17 -0
- package/templates/architectures/event-driven/files/src/__solutionName.snake__/publishers/__init__.py +5 -0
- package/templates/architectures/event-driven/files/src/bootstrap/events.ts +24 -0
- package/templates/architectures/event-driven/files/src/broker/adapters/in-memory-broker.ts +63 -0
- package/templates/architectures/event-driven/files/src/broker/config.ts +39 -0
- package/templates/architectures/event-driven/files/src/broker/factory.ts +13 -0
- package/templates/architectures/event-driven/files/src/broker/index.ts +6 -0
- package/templates/architectures/event-driven/files/src/broker/port.ts +15 -0
- package/templates/architectures/event-driven/files/src/events/__eventDomain.kebab__/__firstEvent.kebab__/v1.ts +20 -0
- package/templates/architectures/event-driven/files/src/events/contract.ts +36 -0
- package/templates/architectures/event-driven/files/src/events/envelope.ts +20 -0
- package/templates/architectures/event-driven/files/src/events/index.ts +17 -0
- package/templates/architectures/event-driven/files/src/handlers/__firstHandler.kebab__/index.ts +21 -0
- package/templates/architectures/event-driven/files/src/handlers/__secondHandler.kebab__/index.ts +17 -0
- package/templates/architectures/event-driven/files/src/publishers/__eventDomain.kebab__.publisher.ts +20 -0
- package/templates/architectures/event-driven/files/tests/EventArchitectureTests/EventArchitectureTests.csproj +31 -0
- package/templates/architectures/event-driven/files/tests/EventArchitectureTests/EventBoundaryTests.cs +121 -0
- package/templates/architectures/event-driven/files/tests/architecture/test_event_boundaries.py +161 -0
- package/templates/architectures/feature-sliced-design/blueprint.yaml +121 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/app/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/entities/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/features/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/pages/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/api/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/config/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/lib/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/shared/ui/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/apps/__appName.kebab__/src/widgets/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/docs/architecture.md +148 -0
- package/templates/architectures/feature-sliced-design/files/package.json +6 -0
- package/templates/architectures/feature-sliced-design/files/scripts/check-fsd-boundaries.mjs +210 -0
- package/templates/architectures/feature-sliced-design/files/src/_app/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/src/_pages/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/src/app/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/src/entities/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/src/features/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/src/pages/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/src/shared/api/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/src/shared/config/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/src/shared/lib/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/src/shared/ui/index.ts +3 -0
- package/templates/architectures/feature-sliced-design/files/src/widgets/.gitkeep +1 -0
- package/templates/architectures/feature-sliced-design/files/steiger.config.js +21 -0
- package/templates/architectures/hexagonal/blueprint.yaml +146 -0
- package/templates/architectures/hexagonal/files/.importlinter +33 -0
- package/templates/architectures/hexagonal/files/Directory.Packages.props +8 -0
- package/templates/architectures/hexagonal/files/__solutionName.dot__.slnx +13 -0
- package/templates/architectures/hexagonal/files/docs/architecture/hexagonal.md +102 -0
- package/templates/architectures/hexagonal/files/internal/adapters/inbound/rest/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/adapters/outbound/memory/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/adapters/outbound/postgres/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/application/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/architecture/architecture_test.go +150 -0
- package/templates/architectures/hexagonal/files/internal/architecture/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/bootstrap/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/domain/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/ports/inbound/doc.go +2 -0
- package/templates/architectures/hexagonal/files/internal/ports/outbound/doc.go +2 -0
- package/templates/architectures/hexagonal/files/pyproject.toml +2 -0
- package/templates/architectures/hexagonal/files/scripts/check-architecture.mjs +104 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Inbound.Http/HttpAdapterMarker.cs +4 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Inbound.Http/__solutionName.dot__.Adapters.Inbound.Http.csproj +15 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.InMemory/InMemoryAdapterMarker.cs +4 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.InMemory/__solutionName.dot__.Adapters.Outbound.InMemory.csproj +15 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.Persistence/PersistenceAdapterMarker.cs +4 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Adapters.Outbound.Persistence/__solutionName.dot__.Adapters.Outbound.Persistence.csproj +15 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/ApplicationMarker.cs +4 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/Ports/Inbound/.gitkeep +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/Ports/Outbound/.gitkeep +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/UseCases/.gitkeep +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Application/__solutionName.dot__.Application.csproj +15 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Bootstrap/CompositionRoot.cs +8 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Bootstrap/__solutionName.dot__.Bootstrap.csproj +18 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Domain/DomainMarker.cs +4 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.dot__.Domain/__solutionName.dot__.Domain.csproj +12 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/inbound/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/inbound/http/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/outbound/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/outbound/in_memory/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/adapters/outbound/persistence/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/application/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/bootstrap/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/domain/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/ports/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/ports/inbound/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/__solutionName.snake__/ports/outbound/__init__.py +1 -0
- package/templates/architectures/hexagonal/files/src/adapters/inbound/http/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/adapters/outbound/in-memory/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/adapters/outbound/persistence/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/application/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/bootstrap/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/domain/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/ports/inbound/index.ts +2 -0
- package/templates/architectures/hexagonal/files/src/ports/outbound/index.ts +2 -0
- package/templates/architectures/hexagonal/files/tests/ArchitectureTests/ArchitectureTests.csproj +34 -0
- package/templates/architectures/hexagonal/files/tests/ArchitectureTests/HexagonBoundaryTests.cs +135 -0
- package/templates/architectures/lakehouse/blueprint.yaml +103 -0
- package/templates/architectures/lakehouse/files/.importlinter +51 -0
- package/templates/architectures/lakehouse/files/docs/architecture/lakehouse.python.md +134 -0
- package/templates/architectures/lakehouse/files/pyproject.toml +5 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/__init__.py +20 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/catalog/__init__.py +21 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/catalog/_delta.py +155 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/catalog/_iceberg.py +214 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/maintenance/__init__.py +9 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/maintenance/__main__.py +31 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/maintenance/jobs.py +38 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/ports.py +58 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/queries/__init__.py +13 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/queries/reads.py +30 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/schema.py +66 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/settings.py +61 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/tables/__firstTable.snake__.py +22 -0
- package/templates/architectures/lakehouse/files/src/__solutionName.snake__/lakehouse/tables/__init__.py +28 -0
- package/templates/architectures/lakehouse/files/tests/architecture/test_lakehouse_boundaries.py +155 -0
- package/templates/architectures/layered/blueprint.yaml +159 -0
- package/templates/architectures/layered/files/.importlinter +18 -0
- package/templates/architectures/layered/files/Directory.Build.targets +10 -0
- package/templates/architectures/layered/files/Directory.Packages.props +7 -0
- package/templates/architectures/layered/files/__solutionName.dot__.slnx +9 -0
- package/templates/architectures/layered/files/architecture.layers.json +19 -0
- package/templates/architectures/layered/files/docs/architecture/layered.md +94 -0
- package/templates/architectures/layered/files/internal/architecture/doc.go +3 -0
- package/templates/architectures/layered/files/internal/architecture/layers_test.go +138 -0
- package/templates/architectures/layered/files/internal/business/doc.go +3 -0
- package/templates/architectures/layered/files/internal/data/doc.go +3 -0
- package/templates/architectures/layered/files/internal/presentation/doc.go +4 -0
- package/templates/architectures/layered/files/pyproject.toml +2 -0
- package/templates/architectures/layered/files/scripts/check-layers.mjs +125 -0
- package/templates/architectures/layered/files/src/__solutionName.dot__.Business/AssemblyMarker.cs +7 -0
- package/templates/architectures/layered/files/src/__solutionName.dot__.Business/__solutionName.dot__.Business.csproj +15 -0
- package/templates/architectures/layered/files/src/__solutionName.dot__.Data/AssemblyMarker.cs +7 -0
- package/templates/architectures/layered/files/src/__solutionName.dot__.Data/__solutionName.dot__.Data.csproj +10 -0
- package/templates/architectures/layered/files/src/__solutionName.snake__/business/__init__.py +1 -0
- package/templates/architectures/layered/files/src/__solutionName.snake__/data/__init__.py +1 -0
- package/templates/architectures/layered/files/src/__solutionName.snake__/presentation/__init__.py +1 -0
- package/templates/architectures/layered/files/src/business/README.md +1 -0
- package/templates/architectures/layered/files/src/data/README.md +1 -0
- package/templates/architectures/layered/files/src/presentation/README.md +1 -0
- package/templates/architectures/layered/files/src/shared/README.md +1 -0
- package/templates/architectures/layered/files/tests/__solutionName.dot__.ArchitectureTests/LayerBoundaryTests.cs +151 -0
- package/templates/architectures/layered/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +27 -0
- package/templates/architectures/llm-workflow/blueprint.yaml +129 -0
- package/templates/architectures/llm-workflow/files/.importlinter +34 -0
- package/templates/architectures/llm-workflow/files/__promptsDir__/README.md +26 -0
- package/templates/architectures/llm-workflow/files/__promptsDir__/__firstStep.kebab__/__promptVersion__.md +7 -0
- package/templates/architectures/llm-workflow/files/docs/architecture/llm-workflow.python.md +133 -0
- package/templates/architectures/llm-workflow/files/docs/architecture/llm-workflow.typescript.md +124 -0
- package/templates/architectures/llm-workflow/files/package.json +9 -0
- package/templates/architectures/llm-workflow/files/scripts/check-llm-workflow.mjs +200 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/__init__.py +5 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/chains/__init__.py +5 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/chains/__workflowName.snake__.py +19 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/__init__.py +1 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/assertions.py +82 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/goldens.jsonl +4 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/evals/runner.py +64 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/parallel/__init__.py +5 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/parallel/gather.py +28 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/ports/__init__.py +38 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/ports/llm.py +41 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/ports/stub.py +27 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/prompts.py +22 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/routing/__init__.py +5 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/routing/route.py +47 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/settings.py +60 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/steps/__firstStep.snake__.py +24 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/steps/__init__.py +6 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/steps/normalize.py +11 -0
- package/templates/architectures/llm-workflow/files/src/__solutionName.snake__/workflow/types.py +40 -0
- package/templates/architectures/llm-workflow/files/src/workflow/chains/__workflowName.kebab__.ts +14 -0
- package/templates/architectures/llm-workflow/files/src/workflow/evals/assert.ts +59 -0
- package/templates/architectures/llm-workflow/files/src/workflow/evals/goldens.jsonl +4 -0
- package/templates/architectures/llm-workflow/files/src/workflow/evals/run.ts +60 -0
- package/templates/architectures/llm-workflow/files/src/workflow/parallel/gather.ts +25 -0
- package/templates/architectures/llm-workflow/files/src/workflow/ports/index.ts +34 -0
- package/templates/architectures/llm-workflow/files/src/workflow/ports/llm.ts +33 -0
- package/templates/architectures/llm-workflow/files/src/workflow/ports/stub.ts +23 -0
- package/templates/architectures/llm-workflow/files/src/workflow/prompts.ts +27 -0
- package/templates/architectures/llm-workflow/files/src/workflow/routing/route.ts +38 -0
- package/templates/architectures/llm-workflow/files/src/workflow/settings.ts +44 -0
- package/templates/architectures/llm-workflow/files/src/workflow/steps/__firstStep.kebab__.ts +19 -0
- package/templates/architectures/llm-workflow/files/src/workflow/steps/index.ts +3 -0
- package/templates/architectures/llm-workflow/files/src/workflow/steps/normalize.ts +8 -0
- package/templates/architectures/llm-workflow/files/src/workflow/types.ts +29 -0
- package/templates/architectures/llm-workflow/files/tests/test_workflow_boundaries.py +171 -0
- package/templates/architectures/llm-workflow/files/tests/test_workflow_goldens.py +30 -0
- package/templates/architectures/medallion/blueprint.yaml +91 -0
- package/templates/architectures/medallion/files/.importlinter +31 -0
- package/templates/architectures/medallion/files/contracts/bronze.contract.toml +16 -0
- package/templates/architectures/medallion/files/contracts/gold.contract.toml +21 -0
- package/templates/architectures/medallion/files/contracts/silver.contract.toml +31 -0
- package/templates/architectures/medallion/files/docs/architecture/medallion.python.md +104 -0
- package/templates/architectures/medallion/files/pyproject.toml +2 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/__init__.py +5 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/bronze/__init__.py +5 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/bronze/ingest.py +41 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/config.py +48 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/contracts.py +166 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/gold/__init__.py +5 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/gold/aggregate.py +40 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/io.py +28 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/run.py +40 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/silver/__init__.py +6 -0
- package/templates/architectures/medallion/files/src/__solutionName.snake__/pipelines/silver/conform.py +53 -0
- package/templates/architectures/medallion/files/tests/architecture/test_layer_contracts.py +72 -0
- package/templates/architectures/medallion/files/tests/architecture/test_medallion_boundaries.py +166 -0
- package/templates/architectures/micro-frontends/blueprint.yaml +124 -0
- package/templates/architectures/micro-frontends/files/apps/host/package.json +10 -0
- package/templates/architectures/micro-frontends/files/apps/host/remotes.example.json +9 -0
- package/templates/architectures/micro-frontends/files/apps/host/src/config.ts +34 -0
- package/templates/architectures/micro-frontends/files/apps/host/src/loaders/import-map.ts +34 -0
- package/templates/architectures/micro-frontends/files/apps/host/src/loaders/module-federation.ts +29 -0
- package/templates/architectures/micro-frontends/files/apps/host/src/remote-loader.ts +45 -0
- package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/module-federation.config.mjs +19 -0
- package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/package.json +15 -0
- package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/src/config.ts +28 -0
- package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/src/index.ts +5 -0
- package/templates/architectures/micro-frontends/files/apps/remotes/__remoteName.kebab__/src/mount.ts +32 -0
- package/templates/architectures/micro-frontends/files/docs/architecture/micro-frontends.md +161 -0
- package/templates/architectures/micro-frontends/files/package.json +14 -0
- package/templates/architectures/micro-frontends/files/packages/design-system/README.md +27 -0
- package/templates/architectures/micro-frontends/files/packages/design-system/package.json +11 -0
- package/templates/architectures/micro-frontends/files/packages/design-system/src/index.ts +10 -0
- package/templates/architectures/micro-frontends/files/packages/design-system/src/tokens.ts +20 -0
- package/templates/architectures/micro-frontends/files/packages/host-contract/package.json +11 -0
- package/templates/architectures/micro-frontends/files/packages/host-contract/src/index.ts +18 -0
- package/templates/architectures/micro-frontends/files/scripts/check-mfe-boundaries.mjs +199 -0
- package/templates/architectures/microservices/blueprint.yaml +160 -0
- package/templates/architectures/microservices/files/.importlinter +22 -0
- package/templates/architectures/microservices/files/Directory.Packages.props +8 -0
- package/templates/architectures/microservices/files/__solutionName.dot__.slnx +9 -0
- package/templates/architectures/microservices/files/contracts/__firstService.kebab__/package.json +8 -0
- package/templates/architectures/microservices/files/contracts/__firstService.kebab__/src/index.ts +32 -0
- package/templates/architectures/microservices/files/contracts/__firstService.lower__/contract.go +35 -0
- package/templates/architectures/microservices/files/contracts/__solutionName.pascal__.Contracts.__firstService.pascal__/__firstService.pascal__Contract.cs +26 -0
- package/templates/architectures/microservices/files/contracts/__solutionName.pascal__.Contracts.__firstService.pascal__/__solutionName.pascal__.Contracts.__firstService.pascal__.csproj +11 -0
- package/templates/architectures/microservices/files/deploy/__firstService.kebab__/Dockerfile +16 -0
- package/templates/architectures/microservices/files/docs/architecture/microservices.dotnet.md +91 -0
- package/templates/architectures/microservices/files/docs/architecture/microservices.go.md +77 -0
- package/templates/architectures/microservices/files/docs/architecture/microservices.node.md +88 -0
- package/templates/architectures/microservices/files/docs/architecture/microservices.python.md +92 -0
- package/templates/architectures/microservices/files/internal/architecture/boundary_test.go +139 -0
- package/templates/architectures/microservices/files/package.json +9 -0
- package/templates/architectures/microservices/files/pyproject.toml +2 -0
- package/templates/architectures/microservices/files/scripts/check-service-boundaries.mjs +200 -0
- package/templates/architectures/microservices/files/services/__firstService.kebab__/Dockerfile +19 -0
- package/templates/architectures/microservices/files/services/__firstService.kebab__/package.json +9 -0
- package/templates/architectures/microservices/files/services/__firstService.kebab__/src/config.ts +50 -0
- package/templates/architectures/microservices/files/services/__firstService.kebab__/src/index.ts +26 -0
- package/templates/architectures/microservices/files/services/__firstService.lower__/Dockerfile +18 -0
- package/templates/architectures/microservices/files/services/__firstService.lower__/internal/config/config.go +45 -0
- package/templates/architectures/microservices/files/services/__firstService.lower__/main.go +23 -0
- package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/Dockerfile +17 -0
- package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/ServiceAssemblyMarker.cs +10 -0
- package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/ServiceOptions.cs +28 -0
- package/templates/architectures/microservices/files/services/__solutionName.pascal__.Services.__firstService.pascal__/__solutionName.pascal__.Services.__firstService.pascal__.csproj +14 -0
- package/templates/architectures/microservices/files/src/__solutionName.snake__/contracts/__firstService.snake__/__init__.py +42 -0
- package/templates/architectures/microservices/files/src/__solutionName.snake__/contracts/__init__.py +5 -0
- package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__firstService.snake__/__init__.py +5 -0
- package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__firstService.snake__/config.py +54 -0
- package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__firstService.snake__/service.py +21 -0
- package/templates/architectures/microservices/files/src/__solutionName.snake__/services/__init__.py +5 -0
- package/templates/architectures/microservices/files/tests/ArchitectureTests/ArchitectureTests.csproj +29 -0
- package/templates/architectures/microservices/files/tests/ArchitectureTests/ServiceBoundaryTests.cs +102 -0
- package/templates/architectures/microservices/files/tests/architecture/test_service_boundaries.py +120 -0
- package/templates/architectures/modular-monolith/blueprint.yaml +111 -0
- package/templates/architectures/modular-monolith/files/.importlinter +22 -0
- package/templates/architectures/modular-monolith/files/Directory.Packages.props +9 -0
- package/templates/architectures/modular-monolith/files/__solutionName.dot__.slnx +9 -0
- package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.dotnet.md +54 -0
- package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.go.md +50 -0
- package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.node.md +56 -0
- package/templates/architectures/modular-monolith/files/docs/architecture/modular-monolith.python.md +54 -0
- package/templates/architectures/modular-monolith/files/internal/architecture/boundary_test.go +151 -0
- package/templates/architectures/modular-monolith/files/internal/modules/__moduleName.lower__/__moduleName.lower__.go +56 -0
- package/templates/architectures/modular-monolith/files/internal/modules/__moduleName.lower__/internal/store/store.go +12 -0
- package/templates/architectures/modular-monolith/files/internal/shared/events/bus.go +60 -0
- package/templates/architectures/modular-monolith/files/scripts/check-module-boundaries.mjs +185 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Api/I__moduleName.pascal__Module.cs +14 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Api/__moduleName.pascal__Events.cs +6 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Api/__moduleName.pascal__ModuleRegistration.cs +18 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/Internal/__moduleName.pascal__Service.cs +19 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.Modules.__moduleName.pascal__/__solutionName.dot__.Modules.__moduleName.pascal__.csproj +16 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/EventBusRegistration.cs +14 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/IEventBus.cs +15 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/IIntegrationEvent.cs +8 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/Events/InProcessEventBus.cs +23 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.dot__.SharedKernel/__solutionName.dot__.SharedKernel.csproj +12 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__init__.py +1 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/__init__.py +1 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/api/__init__.py +15 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/api/contracts.py +27 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/api/factory.py +11 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/internal/__init__.py +1 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/modules/__moduleName.snake__/internal/service.py +20 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/shared/__init__.py +1 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/shared/events/__init__.py +3 -0
- package/templates/architectures/modular-monolith/files/src/__solutionName.snake__/shared/events/bus.py +43 -0
- package/templates/architectures/modular-monolith/files/src/modules/__moduleName.kebab__/api/contracts.ts +19 -0
- package/templates/architectures/modular-monolith/files/src/modules/__moduleName.kebab__/api/index.ts +18 -0
- package/templates/architectures/modular-monolith/files/src/modules/__moduleName.kebab__/internal/__moduleName.kebab__.service.ts +24 -0
- package/templates/architectures/modular-monolith/files/src/shared/events/event-bus.ts +34 -0
- package/templates/architectures/modular-monolith/files/src/shared/events/index.ts +2 -0
- package/templates/architectures/modular-monolith/files/tests/__solutionName.dot__.ArchitectureTests/ModuleBoundaryTests.cs +102 -0
- package/templates/architectures/modular-monolith/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +30 -0
- package/templates/architectures/modular-monolith/files/tests/architecture/test_module_boundaries.py +114 -0
- package/templates/architectures/monolith/blueprint.yaml +141 -0
- package/templates/architectures/monolith/files/.importlinter +14 -0
- package/templates/architectures/monolith/files/Directory.Packages.props +8 -0
- package/templates/architectures/monolith/files/__solutionName.dot__.slnx +5 -0
- package/templates/architectures/monolith/files/docs/architecture/monolith.dotnet.md +78 -0
- package/templates/architectures/monolith/files/docs/architecture/monolith.go.md +69 -0
- package/templates/architectures/monolith/files/docs/architecture/monolith.node.md +70 -0
- package/templates/architectures/monolith/files/docs/architecture/monolith.python.md +71 -0
- package/templates/architectures/monolith/files/internal/architecture/boundary_test.go +141 -0
- package/templates/architectures/monolith/files/internal/features/__featureName.lower__/__featureName.lower__.go +37 -0
- package/templates/architectures/monolith/files/internal/features/__featureName.lower__/internal/store/store.go +14 -0
- package/templates/architectures/monolith/files/internal/features/features.go +18 -0
- package/templates/architectures/monolith/files/internal/shared/apperr/apperr.go +17 -0
- package/templates/architectures/monolith/files/pyproject.toml +2 -0
- package/templates/architectures/monolith/files/scripts/check-monolith-boundaries.mjs +187 -0
- package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Features/__featureName.pascal__/Internal/__featureName.pascal__Service.cs +12 -0
- package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Features/__featureName.pascal__/__featureName.pascal__Feature.cs +13 -0
- package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Features/__featureName.pascal__/__featureName.pascal__Registration.cs +13 -0
- package/templates/architectures/monolith/files/src/__solutionName.dot__.Api/Kernel/AppException.cs +30 -0
- package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Features/__featureName.pascal__/Internal/__featureName.pascal__Service.cs +12 -0
- package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Features/__featureName.pascal__/__featureName.pascal__Feature.cs +13 -0
- package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Features/__featureName.pascal__/__featureName.pascal__Registration.cs +13 -0
- package/templates/architectures/monolith/files/src/__solutionName.pascal__.Api/Kernel/AppException.cs +30 -0
- package/templates/architectures/monolith/files/src/__solutionName.snake__/features/__featureName.snake__/__init__.py +31 -0
- package/templates/architectures/monolith/files/src/__solutionName.snake__/features/__featureName.snake__/service.py +22 -0
- package/templates/architectures/monolith/files/src/__solutionName.snake__/features/__init__.py +14 -0
- package/templates/architectures/monolith/files/src/__solutionName.snake__/shared/__init__.py +11 -0
- package/templates/architectures/monolith/files/src/__solutionName.snake__/shared/errors.py +13 -0
- package/templates/architectures/monolith/files/src/features/__featureName.kebab__/__featureName.kebab__.service.ts +15 -0
- package/templates/architectures/monolith/files/src/features/__featureName.kebab__/index.ts +20 -0
- package/templates/architectures/monolith/files/src/features/index.ts +11 -0
- package/templates/architectures/monolith/files/src/shared/errors.ts +13 -0
- package/templates/architectures/monolith/files/src/shared/index.ts +7 -0
- package/templates/architectures/monolith/files/tests/ArchitectureTests/ArchitectureTests.csproj +32 -0
- package/templates/architectures/monolith/files/tests/ArchitectureTests/FeatureBoundaryTests.cs +129 -0
- package/templates/architectures/monolith/files/tests/architecture/test_monolith_boundaries.py +136 -0
- package/templates/architectures/multi-agent/blueprint.yaml +97 -0
- package/templates/architectures/multi-agent/files/.importlinter +36 -0
- package/templates/architectures/multi-agent/files/docs/architecture/multi-agent.node.md +110 -0
- package/templates/architectures/multi-agent/files/docs/architecture/multi-agent.python.md +94 -0
- package/templates/architectures/multi-agent/files/docs/architecture/multi-agent.typescript.md +102 -0
- package/templates/architectures/multi-agent/files/pyproject.toml +2 -0
- package/templates/architectures/multi-agent/files/scripts/check-agent-boundaries.mjs +207 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/__init__.py +5 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/config.py +52 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/contracts.py +62 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/__init__.py +9 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/budget.py +45 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/fanout.py +63 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/orchestrator/lead.py +92 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/runtime/__init__.py +5 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/runtime/runner.py +48 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__init__.py +27 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__workerName.snake__/__init__.py +9 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__workerName.snake__/prompt.py +31 -0
- package/templates/architectures/multi-agent/files/src/__solutionName.snake__/agents/workers/__workerName.snake__/worker.py +28 -0
- package/templates/architectures/multi-agent/files/src/agents/config.ts +46 -0
- package/templates/architectures/multi-agent/files/src/agents/contracts/index.ts +4 -0
- package/templates/architectures/multi-agent/files/src/agents/contracts/result.ts +50 -0
- package/templates/architectures/multi-agent/files/src/agents/contracts/task.ts +19 -0
- package/templates/architectures/multi-agent/files/src/agents/orchestrator/budget.ts +51 -0
- package/templates/architectures/multi-agent/files/src/agents/orchestrator/fanout.ts +67 -0
- package/templates/architectures/multi-agent/files/src/agents/orchestrator/index.ts +4 -0
- package/templates/architectures/multi-agent/files/src/agents/orchestrator/lead.ts +77 -0
- package/templates/architectures/multi-agent/files/src/agents/runtime/index.ts +3 -0
- package/templates/architectures/multi-agent/files/src/agents/runtime/runner.ts +36 -0
- package/templates/architectures/multi-agent/files/src/agents/workers/README.md +13 -0
- package/templates/architectures/multi-agent/files/src/agents/workers/__workerName.kebab__/prompt.ts +22 -0
- package/templates/architectures/multi-agent/files/src/agents/workers/__workerName.kebab__/worker.ts +25 -0
- package/templates/architectures/multi-agent/files/src/agents/workers/index.ts +15 -0
- package/templates/architectures/multi-agent/files/tests/architecture/test_agent_boundaries.py +184 -0
- package/templates/architectures/mvc-mvvm/blueprint.yaml +156 -0
- package/templates/architectures/mvc-mvvm/files/.importlinter +25 -0
- package/templates/architectures/mvc-mvvm/files/Directory.Packages.props +8 -0
- package/templates/architectures/mvc-mvvm/files/__solutionName.dot__.slnx +8 -0
- package/templates/architectures/mvc-mvvm/files/docs/architecture/mvc-mvvm.dotnet.md +84 -0
- package/templates/architectures/mvc-mvvm/files/docs/architecture/mvc-mvvm.python.md +69 -0
- package/templates/architectures/mvc-mvvm/files/docs/architecture/mvc-mvvm.typescript.md +85 -0
- package/templates/architectures/mvc-mvvm/files/scripts/check-mvvm-boundaries.mjs +234 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/Models/__firstScreen.pascal__.cs +8 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/ViewModels/RelayCommand.cs +18 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/ViewModels/ViewModelBase.cs +27 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/ViewModels/__firstScreen.pascal__ViewModel.cs +55 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/Views/README.md +12 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.dot__.Presentation/__solutionName.dot__.Presentation.csproj +11 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/controllers/__firstScreen.snake___controller.py +17 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/controllers/__init__.py +5 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/models/__firstScreen.snake__.py +13 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/models/__init__.py +5 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/models/repository.py +17 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/views/__firstScreen.snake___view.py +17 -0
- package/templates/architectures/mvc-mvvm/files/src/__solutionName.snake__/views/__init__.py +6 -0
- package/templates/architectures/mvc-mvvm/files/src/models/index.ts +4 -0
- package/templates/architectures/mvc-mvvm/files/src/viewmodels/index.ts +12 -0
- package/templates/architectures/mvc-mvvm/files/src/views/index.ts +10 -0
- package/templates/architectures/mvc-mvvm/files/tests/__solutionName.dot__.ArchitectureTests/PresentationBoundaryTests.cs +124 -0
- package/templates/architectures/mvc-mvvm/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +28 -0
- package/templates/architectures/mvc-mvvm/files/tests/test_presentation_boundaries.py +33 -0
- package/templates/architectures/onion/blueprint.yaml +146 -0
- package/templates/architectures/onion/files/.dependency-cruiser.cjs +50 -0
- package/templates/architectures/onion/files/.importlinter +33 -0
- package/templates/architectures/onion/files/Directory.Packages.props +8 -0
- package/templates/architectures/onion/files/__solutionName.dot__.slnx +11 -0
- package/templates/architectures/onion/files/docs/architecture/onion-dotnet.md +39 -0
- package/templates/architectures/onion/files/docs/architecture/onion-go.md +33 -0
- package/templates/architectures/onion/files/docs/architecture/onion-python.md +35 -0
- package/templates/architectures/onion/files/docs/architecture/onion-typescript.md +34 -0
- package/templates/architectures/onion/files/internal/applicationservices/doc.go +4 -0
- package/templates/architectures/onion/files/internal/arch/rings.go +11 -0
- package/templates/architectures/onion/files/internal/arch/rings_test.go +112 -0
- package/templates/architectures/onion/files/internal/domain/doc.go +4 -0
- package/templates/architectures/onion/files/internal/domainservices/doc.go +5 -0
- package/templates/architectures/onion/files/internal/infrastructure/doc.go +5 -0
- package/templates/architectures/onion/files/pyproject.toml +2 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.ApplicationServices/ApplicationServicesAssemblyMarker.cs +4 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.ApplicationServices/__solutionName.dot__.ApplicationServices.csproj +13 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.Domain/DomainAssemblyMarker.cs +4 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.Domain/__solutionName.dot__.Domain.csproj +11 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.DomainServices/DomainServicesAssemblyMarker.cs +4 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.DomainServices/Repositories/.gitkeep +2 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.DomainServices/__solutionName.dot__.DomainServices.csproj +14 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.Infrastructure/InfrastructureAssemblyMarker.cs +4 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.Infrastructure/Repositories/.gitkeep +2 -0
- package/templates/architectures/onion/files/src/__solutionName.dot__.Infrastructure/__solutionName.dot__.Infrastructure.csproj +14 -0
- package/templates/architectures/onion/files/src/__solutionName.snake__/application_services/__init__.py +4 -0
- package/templates/architectures/onion/files/src/__solutionName.snake__/domain/__init__.py +5 -0
- package/templates/architectures/onion/files/src/__solutionName.snake__/domain_services/__init__.py +6 -0
- package/templates/architectures/onion/files/src/__solutionName.snake__/infrastructure/__init__.py +5 -0
- package/templates/architectures/onion/files/src/application-services/index.ts +3 -0
- package/templates/architectures/onion/files/src/domain/index.ts +3 -0
- package/templates/architectures/onion/files/src/domain-services/index.ts +3 -0
- package/templates/architectures/onion/files/src/infrastructure/index.ts +3 -0
- package/templates/architectures/onion/files/tests/__solutionName.dot__.ArchitectureTests/RingDependencyTests.cs +104 -0
- package/templates/architectures/onion/files/tests/__solutionName.dot__.ArchitectureTests/__solutionName.dot__.ArchitectureTests.csproj +31 -0
- package/templates/architectures/pipes-and-filters/blueprint.yaml +104 -0
- package/templates/architectures/pipes-and-filters/files/.importlinter +25 -0
- package/templates/architectures/pipes-and-filters/files/docs/architecture/pipes-and-filters.go.md +72 -0
- package/templates/architectures/pipes-and-filters/files/docs/architecture/pipes-and-filters.node.md +73 -0
- package/templates/architectures/pipes-and-filters/files/docs/architecture/pipes-and-filters.python.md +76 -0
- package/templates/architectures/pipes-and-filters/files/internal/pipeline/boundary_test.go +107 -0
- package/templates/architectures/pipes-and-filters/files/internal/pipeline/config.go +53 -0
- package/templates/architectures/pipes-and-filters/files/internal/pipeline/contract/contract.go +35 -0
- package/templates/architectures/pipes-and-filters/files/internal/pipeline/pipeline.go +39 -0
- package/templates/architectures/pipes-and-filters/files/internal/pipeline/stages/__firstStage.lower__/__firstStage.lower__.go +42 -0
- package/templates/architectures/pipes-and-filters/files/internal/pipeline/stages/__firstStage.lower__/__firstStage.lower___test.go +59 -0
- package/templates/architectures/pipes-and-filters/files/package.json +8 -0
- package/templates/architectures/pipes-and-filters/files/pyproject.toml +2 -0
- package/templates/architectures/pipes-and-filters/files/scripts/check-stage-boundaries.mjs +172 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/__init__.py +16 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/config.py +26 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/contract.py +34 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/pipeline.py +33 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/stages/__firstStage.snake__/__init__.py +3 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/stages/__firstStage.snake__/stage.py +31 -0
- package/templates/architectures/pipes-and-filters/files/src/__solutionName.snake__/pipeline/stages/__init__.py +1 -0
- package/templates/architectures/pipes-and-filters/files/src/pipeline/config.ts +24 -0
- package/templates/architectures/pipes-and-filters/files/src/pipeline/contract.ts +41 -0
- package/templates/architectures/pipes-and-filters/files/src/pipeline/pipeline.ts +37 -0
- package/templates/architectures/pipes-and-filters/files/src/pipeline/stages/__firstStage.kebab__/__firstStage.kebab__.test.ts +32 -0
- package/templates/architectures/pipes-and-filters/files/src/pipeline/stages/__firstStage.kebab__/index.ts +29 -0
- package/templates/architectures/pipes-and-filters/files/tests/architecture/test_stage_boundaries.py +127 -0
- package/templates/architectures/pipes-and-filters/files/tests/pipeline/test___firstStage.snake__.py +32 -0
- package/templates/architectures/rag-hybrid/blueprint.yaml +121 -0
- package/templates/architectures/rag-hybrid/files/.importlinter +42 -0
- package/templates/architectures/rag-hybrid/files/docs/architecture/rag-hybrid.node.md +159 -0
- package/templates/architectures/rag-hybrid/files/docs/architecture/rag-hybrid.python.md +157 -0
- package/templates/architectures/rag-hybrid/files/evals/corpus/chunking.md +20 -0
- package/templates/architectures/rag-hybrid/files/evals/corpus/fusion.md +17 -0
- package/templates/architectures/rag-hybrid/files/evals/corpus/hybrid-retrieval.md +21 -0
- package/templates/architectures/rag-hybrid/files/evals/corpus/reranking.md +17 -0
- package/templates/architectures/rag-hybrid/files/evals/golden/queries.jsonl +5 -0
- package/templates/architectures/rag-hybrid/files/package.json +9 -0
- package/templates/architectures/rag-hybrid/files/pyproject.toml +2 -0
- package/templates/architectures/rag-hybrid/files/scripts/check-retrieval-seam.mjs +156 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/__init__.py +23 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/chunk/__init__.py +57 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/config.py +101 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/contracts.py +58 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/embed/__init__.py +90 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/__init__.py +11 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/cli.py +47 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/harness.py +115 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/evaluation/metrics.py +51 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/generate/__init__.py +85 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/indexing.py +23 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/ingest/__init__.py +45 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/pipeline.py +27 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/rerank/__init__.py +85 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/__init__.py +37 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/dense.py +25 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/fusion.py +30 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/retrieve/keyword.py +45 -0
- package/templates/architectures/rag-hybrid/files/src/__solutionName.snake__/rag/store/__init__.py +87 -0
- package/templates/architectures/rag-hybrid/files/src/rag/chunk/index.ts +56 -0
- package/templates/architectures/rag-hybrid/files/src/rag/config.ts +96 -0
- package/templates/architectures/rag-hybrid/files/src/rag/contracts.ts +50 -0
- package/templates/architectures/rag-hybrid/files/src/rag/embed/index.ts +98 -0
- package/templates/architectures/rag-hybrid/files/src/rag/evaluation/cli.ts +47 -0
- package/templates/architectures/rag-hybrid/files/src/rag/evaluation/harness.ts +101 -0
- package/templates/architectures/rag-hybrid/files/src/rag/evaluation/metrics.ts +40 -0
- package/templates/architectures/rag-hybrid/files/src/rag/generate/index.ts +86 -0
- package/templates/architectures/rag-hybrid/files/src/rag/indexing.ts +21 -0
- package/templates/architectures/rag-hybrid/files/src/rag/ingest/index.ts +58 -0
- package/templates/architectures/rag-hybrid/files/src/rag/pipeline.ts +32 -0
- package/templates/architectures/rag-hybrid/files/src/rag/rerank/index.ts +90 -0
- package/templates/architectures/rag-hybrid/files/src/rag/retrieve/dense.ts +26 -0
- package/templates/architectures/rag-hybrid/files/src/rag/retrieve/fusion.ts +32 -0
- package/templates/architectures/rag-hybrid/files/src/rag/retrieve/index.ts +38 -0
- package/templates/architectures/rag-hybrid/files/src/rag/retrieve/keyword.ts +42 -0
- package/templates/architectures/rag-hybrid/files/src/rag/store/index.ts +108 -0
- package/templates/architectures/rag-hybrid/files/tests/architecture/test_retrieval_seam.py +108 -0
- package/templates/architectures/serverless/blueprint.yaml +139 -0
- package/templates/architectures/serverless/files/.gitignore.serverless +3 -0
- package/templates/architectures/serverless/files/.importlinter +18 -0
- package/templates/architectures/serverless/files/cdk.json +7 -0
- package/templates/architectures/serverless/files/docs/architecture/serverless.node.md +97 -0
- package/templates/architectures/serverless/files/docs/architecture/serverless.python.md +108 -0
- package/templates/architectures/serverless/files/events/__firstHandler.kebab__.json +21 -0
- package/templates/architectures/serverless/files/infra/app.ts +15 -0
- package/templates/architectures/serverless/files/infra/config.ts +22 -0
- package/templates/architectures/serverless/files/infra/stack.ts +45 -0
- package/templates/architectures/serverless/files/package.json +9 -0
- package/templates/architectures/serverless/files/pyproject.toml +2 -0
- package/templates/architectures/serverless/files/scripts/check-handler-boundaries.mjs +144 -0
- package/templates/architectures/serverless/files/scripts/invoke-local.ts +57 -0
- package/templates/architectures/serverless/files/scripts/invoke_local.py +61 -0
- package/templates/architectures/serverless/files/src/__solutionName.snake__/functions/__firstHandler.snake__/__init__.py +1 -0
- package/templates/architectures/serverless/files/src/__solutionName.snake__/functions/__firstHandler.snake__/handler.py +27 -0
- package/templates/architectures/serverless/files/src/__solutionName.snake__/functions/__init__.py +4 -0
- package/templates/architectures/serverless/files/src/__solutionName.snake__/layers/__init__.py +5 -0
- package/templates/architectures/serverless/files/src/__solutionName.snake__/layers/config.py +45 -0
- package/templates/architectures/serverless/files/src/__solutionName.snake__/layers/observability.py +35 -0
- package/templates/architectures/serverless/files/src/functions/__firstHandler.kebab__/handler.ts +26 -0
- package/templates/architectures/serverless/files/src/layers/config/index.ts +31 -0
- package/templates/architectures/serverless/files/src/layers/observability/index.ts +38 -0
- package/templates/architectures/serverless/files/src/requirements.txt +3 -0
- package/templates/architectures/serverless/files/template.yaml +48 -0
- package/templates/architectures/serverless/files/tests/architecture/test_handler_boundaries.py +32 -0
- package/templates/architectures/vertical-slice/blueprint.yaml +124 -0
- package/templates/architectures/vertical-slice/files/.importlinter +18 -0
- package/templates/architectures/vertical-slice/files/Directory.Packages.props +8 -0
- package/templates/architectures/vertical-slice/files/__solutionName.dot__.slnx +5 -0
- package/templates/architectures/vertical-slice/files/docs/architecture/vertical-slice.md +75 -0
- package/templates/architectures/vertical-slice/files/internal/features/__firstSlice.lower__/__firstSlice.lower__.go +2 -0
- package/templates/architectures/vertical-slice/files/internal/features/boundary_test.go +92 -0
- package/templates/architectures/vertical-slice/files/internal/features/doc.go +3 -0
- package/templates/architectures/vertical-slice/files/internal/shared/doc.go +2 -0
- package/templates/architectures/vertical-slice/files/pyproject.toml +2 -0
- package/templates/architectures/vertical-slice/files/scripts/check-slice-boundaries.mjs +118 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.dot__.Api/Common/.gitkeep +0 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.dot__.Api/Features/.gitkeep +0 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.dot__.Api/Features/__firstSlice.pascal__/Slice.cs +15 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.pascal__.Api/Common/.gitkeep +0 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.pascal__.Api/Features/.gitkeep +0 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.pascal__.Api/Features/__firstSlice.pascal__/Slice.cs +15 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.snake__/features/__firstSlice.snake__/__init__.py +1 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.snake__/features/__init__.py +1 -0
- package/templates/architectures/vertical-slice/files/src/__solutionName.snake__/shared/__init__.py +1 -0
- package/templates/architectures/vertical-slice/files/src/features/__firstSlice.kebab__/index.ts +3 -0
- package/templates/architectures/vertical-slice/files/src/shared/.gitkeep +0 -0
- package/templates/architectures/vertical-slice/files/tests/ArchitectureTests/ArchitectureTests.csproj +33 -0
- package/templates/architectures/vertical-slice/files/tests/ArchitectureTests/SliceBoundaryTests.cs +110 -0
- package/templates/architectures/vertical-slice/files/tests/test_architecture.py +32 -0
- package/templates/bases/dotnet-aspire/blueprint.yaml +120 -0
- package/templates/bases/dotnet-aspire/files/Directory.Build.props +11 -0
- package/templates/bases/dotnet-aspire/files/Directory.Packages.props +17 -0
- package/templates/bases/dotnet-aspire/files/README.md +60 -0
- package/templates/bases/dotnet-aspire/files/__solutionName.dot__.slnx +7 -0
- package/templates/bases/dotnet-aspire/files/aspire.config.json +5 -0
- package/templates/bases/dotnet-aspire/files/gitignore +44 -0
- package/templates/bases/dotnet-aspire/files/global.json +6 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/Configuration/ApiOptions.cs +20 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/Program.cs +37 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/Properties/launchSettings.json +23 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/__solutionName.pascal__.Api.csproj +11 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/appsettings.Development.json +8 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.Api/appsettings.json +14 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/AppHost.cs +8 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/Properties/launchSettings.json +29 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/__solutionName.pascal__.AppHost.csproj +11 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/appsettings.Development.json +8 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.AppHost/appsettings.json +9 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.ServiceDefaults/Extensions.cs +101 -0
- package/templates/bases/dotnet-aspire/files/src/__solutionName.pascal__.ServiceDefaults/__solutionName.pascal__.ServiceDefaults.csproj +19 -0
- package/templates/bases/dotnet-webapi/blueprint.yaml +112 -0
- package/templates/bases/dotnet-webapi/files/.editorconfig +78 -0
- package/templates/bases/dotnet-webapi/files/Directory.Build.props +28 -0
- package/templates/bases/dotnet-webapi/files/Directory.Packages.props +18 -0
- package/templates/bases/dotnet-webapi/files/README.md +71 -0
- package/templates/bases/dotnet-webapi/files/__solutionName.dot__.slnx +11 -0
- package/templates/bases/dotnet-webapi/files/gitignore +49 -0
- package/templates/bases/dotnet-webapi/files/global.json +7 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Configuration/ApiOptions.cs +23 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Configuration/ServiceCollectionExtensions.cs +35 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Endpoints/GreetingEndpoints.cs +24 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Endpoints/HealthEndpoints.cs +11 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Program.cs +23 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/Properties/launchSettings.json +21 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/__solutionName.dot__.Api.csproj +19 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/appsettings.Development.json +8 -0
- package/templates/bases/dotnet-webapi/files/src/__solutionName.dot__.Api/appsettings.json +9 -0
- package/templates/bases/fastapi-service/blueprint.yaml +87 -0
- package/templates/bases/fastapi-service/files/.env.example +10 -0
- package/templates/bases/fastapi-service/files/README.md +42 -0
- package/templates/bases/fastapi-service/files/gitignore +27 -0
- package/templates/bases/fastapi-service/files/pyproject.toml +35 -0
- package/templates/bases/fastapi-service/files/src/__solutionName.snake__/__init__.py +1 -0
- package/templates/bases/fastapi-service/files/src/__solutionName.snake__/api/__init__.py +1 -0
- package/templates/bases/fastapi-service/files/src/__solutionName.snake__/api/routes.py +38 -0
- package/templates/bases/fastapi-service/files/src/__solutionName.snake__/main.py +34 -0
- package/templates/bases/fastapi-service/files/src/__solutionName.snake__/settings.py +30 -0
- package/templates/bases/go-api/blueprint.yaml +58 -0
- package/templates/bases/go-api/files/.env.example +16 -0
- package/templates/bases/go-api/files/README.md +76 -0
- package/templates/bases/go-api/files/cmd/__solutionName.kebab__/main.go +65 -0
- package/templates/bases/go-api/files/gitignore +27 -0
- package/templates/bases/go-api/files/go.mod +5 -0
- package/templates/bases/go-api/files/internal/config/config.go +127 -0
- package/templates/bases/go-api/files/internal/httpapi/greeting.go +25 -0
- package/templates/bases/go-api/files/internal/httpapi/health.go +25 -0
- package/templates/bases/go-api/files/internal/httpapi/respond.go +25 -0
- package/templates/bases/go-api/files/internal/httpapi/router.go +63 -0
- package/templates/bases/hono-api/blueprint.yaml +94 -0
- package/templates/bases/hono-api/files/.env.example +7 -0
- package/templates/bases/hono-api/files/README.md +77 -0
- package/templates/bases/hono-api/files/biome.json +24 -0
- package/templates/bases/hono-api/files/gitignore +16 -0
- package/templates/bases/hono-api/files/package.json +29 -0
- package/templates/bases/hono-api/files/src/app.ts +27 -0
- package/templates/bases/hono-api/files/src/config.ts +27 -0
- package/templates/bases/hono-api/files/src/index.ts +17 -0
- package/templates/bases/hono-api/files/src/routes/greetings.ts +17 -0
- package/templates/bases/hono-api/files/src/routes/health.ts +13 -0
- package/templates/bases/hono-api/files/tsconfig.json +18 -0
- package/templates/bases/nestjs-api/blueprint.yaml +94 -0
- package/templates/bases/nestjs-api/files/.env.example +8 -0
- package/templates/bases/nestjs-api/files/.prettierrc +5 -0
- package/templates/bases/nestjs-api/files/README.md +69 -0
- package/templates/bases/nestjs-api/files/eslint.config.mjs +23 -0
- package/templates/bases/nestjs-api/files/gitignore +11 -0
- package/templates/bases/nestjs-api/files/nest-cli.json +9 -0
- package/templates/bases/nestjs-api/files/package.json +41 -0
- package/templates/bases/nestjs-api/files/src/app.module.ts +16 -0
- package/templates/bases/nestjs-api/files/src/config/app.config.ts +30 -0
- package/templates/bases/nestjs-api/files/src/config/env.validation.ts +15 -0
- package/templates/bases/nestjs-api/files/src/health/health.controller.ts +19 -0
- package/templates/bases/nestjs-api/files/src/health/health.module.ts +6 -0
- package/templates/bases/nestjs-api/files/src/main.ts +25 -0
- package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/__solutionName.kebab__.controller.ts +14 -0
- package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/__solutionName.kebab__.module.ts +11 -0
- package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/__solutionName.kebab__.service.ts +12 -0
- package/templates/bases/nestjs-api/files/src/modules/__solutionName.kebab__/dto/greet-query.dto.ts +10 -0
- package/templates/bases/nestjs-api/files/tsconfig.build.json +4 -0
- package/templates/bases/nestjs-api/files/tsconfig.json +26 -0
- package/templates/bases/nextjs-app/blueprint.yaml +80 -0
- package/templates/bases/nextjs-app/files/.env.example +10 -0
- package/templates/bases/nextjs-app/files/README.md +48 -0
- package/templates/bases/nextjs-app/files/eslint.config.mjs +12 -0
- package/templates/bases/nextjs-app/files/gitignore +32 -0
- package/templates/bases/nextjs-app/files/next.config.ts +8 -0
- package/templates/bases/nextjs-app/files/package.json +30 -0
- package/templates/bases/nextjs-app/files/postcss.config.mjs +7 -0
- package/templates/bases/nextjs-app/files/src/app/api/health/route.ts +21 -0
- package/templates/bases/nextjs-app/files/src/app/globals.css +45 -0
- package/templates/bases/nextjs-app/files/src/app/layout.tsx +28 -0
- package/templates/bases/nextjs-app/files/src/app/page.tsx +39 -0
- package/templates/bases/nextjs-app/files/src/config/env.ts +64 -0
- package/templates/bases/nextjs-app/files/tsconfig.json +35 -0
- package/templates/bases/python-ai-agent/blueprint.yaml +84 -0
- package/templates/bases/python-ai-agent/files/.env.example +29 -0
- package/templates/bases/python-ai-agent/files/README.md +80 -0
- package/templates/bases/python-ai-agent/files/gitignore +21 -0
- package/templates/bases/python-ai-agent/files/pyproject.toml +34 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/__init__.py +1 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/api/__init__.py +1 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/api/routes.py +69 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/config.py +70 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/__init__.py +1 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/anthropic_provider.py +69 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/openai_provider.py +75 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/provider.py +45 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/llm/registry.py +35 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/main.py +33 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/observability/__init__.py +1 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/observability/evals.py +28 -0
- package/templates/bases/python-ai-agent/files/src/__solutionName.snake__/observability/tracing.py +49 -0
- package/templates/bases/react-vite-spa/blueprint.yaml +92 -0
- package/templates/bases/react-vite-spa/files/.env.example +13 -0
- package/templates/bases/react-vite-spa/files/README.md +49 -0
- package/templates/bases/react-vite-spa/files/eslint.config.mjs +26 -0
- package/templates/bases/react-vite-spa/files/gitignore +25 -0
- package/templates/bases/react-vite-spa/files/index.html +13 -0
- package/templates/bases/react-vite-spa/files/package.json +37 -0
- package/templates/bases/react-vite-spa/files/src/api/client.ts +28 -0
- package/templates/bases/react-vite-spa/files/src/api/health.ts +12 -0
- package/templates/bases/react-vite-spa/files/src/app/query-client.ts +12 -0
- package/templates/bases/react-vite-spa/files/src/app/root-layout.tsx +24 -0
- package/templates/bases/react-vite-spa/files/src/app/router.tsx +44 -0
- package/templates/bases/react-vite-spa/files/src/config/env.ts +37 -0
- package/templates/bases/react-vite-spa/files/src/main.tsx +18 -0
- package/templates/bases/react-vite-spa/files/src/pages/home-page.tsx +31 -0
- package/templates/bases/react-vite-spa/files/src/pages/not-found-page.tsx +13 -0
- package/templates/bases/react-vite-spa/files/src/pages/status-page.tsx +37 -0
- package/templates/bases/react-vite-spa/files/src/styles/global.css +169 -0
- package/templates/bases/react-vite-spa/files/src/vite-env.d.ts +15 -0
- package/templates/bases/react-vite-spa/files/tsconfig.app.json +29 -0
- package/templates/bases/react-vite-spa/files/tsconfig.json +4 -0
- package/templates/bases/react-vite-spa/files/tsconfig.node.json +24 -0
- package/templates/bases/react-vite-spa/files/vite.config.ts +25 -0
- package/templates/bases/turborepo-monorepo/blueprint.yaml +84 -0
- package/templates/bases/turborepo-monorepo/files/.env.example +7 -0
- package/templates/bases/turborepo-monorepo/files/.prettierignore +9 -0
- package/templates/bases/turborepo-monorepo/files/.prettierrc.json +5 -0
- package/templates/bases/turborepo-monorepo/files/README.md +55 -0
- package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/eslint.config.js +3 -0
- package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/package.json +25 -0
- package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/src/config.ts +46 -0
- package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/src/index.ts +20 -0
- package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/src/router.ts +24 -0
- package/templates/bases/turborepo-monorepo/files/apps/__appName.kebab__/tsconfig.json +8 -0
- package/templates/bases/turborepo-monorepo/files/gitignore +17 -0
- package/templates/bases/turborepo-monorepo/files/package.json +25 -0
- package/templates/bases/turborepo-monorepo/files/packages/eslint-config/index.js +21 -0
- package/templates/bases/turborepo-monorepo/files/packages/eslint-config/package.json +21 -0
- package/templates/bases/turborepo-monorepo/files/packages/shared/eslint.config.js +3 -0
- package/templates/bases/turborepo-monorepo/files/packages/shared/package.json +26 -0
- package/templates/bases/turborepo-monorepo/files/packages/shared/src/health.ts +23 -0
- package/templates/bases/turborepo-monorepo/files/packages/shared/src/index.ts +2 -0
- package/templates/bases/turborepo-monorepo/files/packages/shared/tsconfig.json +10 -0
- package/templates/bases/turborepo-monorepo/files/packages/tsconfig/base.json +19 -0
- package/templates/bases/turborepo-monorepo/files/packages/tsconfig/node.json +7 -0
- package/templates/bases/turborepo-monorepo/files/packages/tsconfig/package.json +9 -0
- package/templates/bases/turborepo-monorepo/files/pnpm-workspace.yaml +7 -0
- package/templates/bases/turborepo-monorepo/files/turbo.json +22 -0
- package/templates/layers/api-versioning/blueprint.yaml +264 -0
- package/templates/layers/api-versioning/files/.env.apiversion.example +53 -0
- package/templates/layers/api-versioning/files/__apiVersionContractDir__/README.md +48 -0
- package/templates/layers/api-versioning/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/api-versioning/files/docs/api-versioning.md +100 -0
- package/templates/layers/api-versioning/files/internal/apiversion/apiversion_test.go +202 -0
- package/templates/layers/api-versioning/files/internal/apiversion/config.go +242 -0
- package/templates/layers/api-versioning/files/internal/apiversion/contract.go +280 -0
- package/templates/layers/api-versioning/files/internal/apiversion/headers.go +55 -0
- package/templates/layers/api-versioning/files/internal/apiversion/middleware.go +53 -0
- package/templates/layers/api-versioning/files/internal/apiversion/negotiate.go +107 -0
- package/templates/layers/api-versioning/files/internal/apiversion/snapshot.go +72 -0
- package/templates/layers/api-versioning/files/internal/apiversion/versions.go +72 -0
- package/templates/layers/api-versioning/files/package.json +5 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionHeaders.cs +62 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionNegotiator.cs +129 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionOptions.cs +58 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersionPolicy.cs +99 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersioningMiddleware.cs +58 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ApiVersioningServiceCollectionExtensions.cs +18 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ContractDiff.cs +152 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ContractShape.cs +142 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/ContractStore.cs +64 -0
- package/templates/layers/api-versioning/files/src/__solutionName.dot__.ApiVersioning/__solutionName.dot__.ApiVersioning.csproj +17 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/__init__.py +67 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/contract.py +191 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/errors.py +28 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/headers.py +56 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/middleware.py +76 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/negotiate.py +94 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/settings.py +189 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/snapshot.py +74 -0
- package/templates/layers/api-versioning/files/src/__solutionName.snake__/apiversion/versions.py +70 -0
- package/templates/layers/api-versioning/files/src/apiversion/client/pinned-fetch.ts +89 -0
- package/templates/layers/api-versioning/files/src/apiversion/contract/diff.ts +153 -0
- package/templates/layers/api-versioning/files/src/apiversion/contract/node/snapshot.ts +76 -0
- package/templates/layers/api-versioning/files/src/apiversion/contract/shape.ts +94 -0
- package/templates/layers/api-versioning/files/src/apiversion/errors.ts +36 -0
- package/templates/layers/api-versioning/files/src/apiversion/headers.ts +52 -0
- package/templates/layers/api-versioning/files/src/apiversion/index.ts +23 -0
- package/templates/layers/api-versioning/files/src/apiversion/middleware.ts +59 -0
- package/templates/layers/api-versioning/files/src/apiversion/negotiate.ts +113 -0
- package/templates/layers/api-versioning/files/src/apiversion/node/http.ts +50 -0
- package/templates/layers/api-versioning/files/src/apiversion/settings.ts +214 -0
- package/templates/layers/api-versioning/files/src/apiversion/tests/apiversion.spec.ts +162 -0
- package/templates/layers/api-versioning/files/src/apiversion/tests/apiversion.test.ts +167 -0
- package/templates/layers/api-versioning/files/src/apiversion/versions.ts +66 -0
- package/templates/layers/api-versioning/files/tests/test_api_versioning.py +162 -0
- package/templates/layers/audit-log/blueprint.yaml +186 -0
- package/templates/layers/audit-log/files/.env.audit.example +41 -0
- package/templates/layers/audit-log/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/audit-log/files/docs/audit-log.md +195 -0
- package/templates/layers/audit-log/files/internal/audit/audit_test.go +141 -0
- package/templates/layers/audit-log/files/internal/audit/chain.go +91 -0
- package/templates/layers/audit-log/files/internal/audit/config.go +143 -0
- package/templates/layers/audit-log/files/internal/audit/event.go +87 -0
- package/templates/layers/audit-log/files/internal/audit/recorder.go +133 -0
- package/templates/layers/audit-log/files/internal/audit/redact.go +83 -0
- package/templates/layers/audit-log/files/internal/audit/sink.go +196 -0
- package/templates/layers/audit-log/files/internal/audit/verify.go +17 -0
- package/templates/layers/audit-log/files/package.json +5 -0
- package/templates/layers/audit-log/files/pyproject.toml +2 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditChain.cs +74 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditEvent.cs +90 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditOptions.cs +104 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditRecorder.cs +106 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditSerialization.cs +116 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/AuditSinks.cs +165 -0
- package/templates/layers/audit-log/files/src/__solutionName.dot__.Auditing/__solutionName.dot__.Auditing.csproj +17 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/chain.py +56 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/event.py +118 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/recorder.py +118 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/redact.py +41 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/settings.py +102 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/sinks.py +121 -0
- package/templates/layers/audit-log/files/src/__solutionName.snake__/audit/verify.py +14 -0
- package/templates/layers/audit-log/files/src/audit/chain.ts +59 -0
- package/templates/layers/audit-log/files/src/audit/event.ts +73 -0
- package/templates/layers/audit-log/files/src/audit/index.ts +32 -0
- package/templates/layers/audit-log/files/src/audit/recorder.ts +108 -0
- package/templates/layers/audit-log/files/src/audit/redact.ts +54 -0
- package/templates/layers/audit-log/files/src/audit/settings.ts +113 -0
- package/templates/layers/audit-log/files/src/audit/sinks.ts +131 -0
- package/templates/layers/audit-log/files/src/audit/tests/audit.spec.ts +97 -0
- package/templates/layers/audit-log/files/src/audit/tests/audit.test.ts +103 -0
- package/templates/layers/audit-log/files/tests/test_audit_log.py +91 -0
- package/templates/layers/auth-jwt/blueprint.yaml +124 -0
- package/templates/layers/auth-jwt/files/.env.auth.example +17 -0
- package/templates/layers/auth-jwt/files/Directory.Packages.props +5 -0
- package/templates/layers/auth-jwt/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/auth-jwt/files/docs/auth-jwt.md +198 -0
- package/templates/layers/auth-jwt/files/go.mod +2 -0
- package/templates/layers/auth-jwt/files/internal/auth/auth_test.go +167 -0
- package/templates/layers/auth-jwt/files/internal/auth/config.go +108 -0
- package/templates/layers/auth-jwt/files/internal/auth/errors.go +21 -0
- package/templates/layers/auth-jwt/files/internal/auth/http.go +65 -0
- package/templates/layers/auth-jwt/files/internal/auth/password.go +76 -0
- package/templates/layers/auth-jwt/files/internal/auth/service.go +213 -0
- package/templates/layers/auth-jwt/files/internal/auth/store.go +138 -0
- package/templates/layers/auth-jwt/files/internal/auth/token.go +83 -0
- package/templates/layers/auth-jwt/files/package.json +9 -0
- package/templates/layers/auth-jwt/files/pyproject.toml +2 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthException.cs +39 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthOptions.cs +35 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthService.cs +132 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/AuthServiceCollectionExtensions.cs +48 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/JwtTokenService.cs +84 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/PasswordHasher.cs +52 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/Stores.cs +100 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/__solutionName.dot__.Auth.csproj +21 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.dot__.Auth/appsettings.Auth.sample.json +10 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/__init__.py +42 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/config.py +49 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/errors.py +21 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/http.py +36 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/passwords.py +37 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/service.py +139 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/store.py +90 -0
- package/templates/layers/auth-jwt/files/src/__solutionName.snake__/auth/tokens.py +72 -0
- package/templates/layers/auth-jwt/files/src/auth/config.ts +77 -0
- package/templates/layers/auth-jwt/files/src/auth/errors.ts +32 -0
- package/templates/layers/auth-jwt/files/src/auth/http.ts +35 -0
- package/templates/layers/auth-jwt/files/src/auth/index.ts +20 -0
- package/templates/layers/auth-jwt/files/src/auth/password.ts +23 -0
- package/templates/layers/auth-jwt/files/src/auth/random.ts +28 -0
- package/templates/layers/auth-jwt/files/src/auth/service.ts +125 -0
- package/templates/layers/auth-jwt/files/src/auth/store.memory.ts +50 -0
- package/templates/layers/auth-jwt/files/src/auth/store.ts +37 -0
- package/templates/layers/auth-jwt/files/src/auth/tests/auth.spec.ts +98 -0
- package/templates/layers/auth-jwt/files/src/auth/tests/auth.test.ts +102 -0
- package/templates/layers/auth-jwt/files/src/auth/tokens.ts +56 -0
- package/templates/layers/auth-jwt/files/tests/auth/test_auth.py +106 -0
- package/templates/layers/auth-oidc/blueprint.yaml +89 -0
- package/templates/layers/auth-oidc/files/dotnet/.env.oidc.example +14 -0
- package/templates/layers/auth-oidc/files/dotnet/docs/auth-oidc.md +73 -0
- package/templates/layers/auth-oidc/files/dotnet/src/__solutionName.pascal__.Api/Auth/OidcAuthenticationExtensions.cs +65 -0
- package/templates/layers/auth-oidc/files/dotnet/src/__solutionName.pascal__.Api/Auth/OidcOptions.cs +25 -0
- package/templates/layers/auth-oidc/files/dotnet/src/__solutionName.pascal__.Api/Auth/ScopeRequirement.cs +29 -0
- package/templates/layers/auth-oidc/files/node/.env.oidc.example +14 -0
- package/templates/layers/auth-oidc/files/node/docs/auth-oidc.md +66 -0
- package/templates/layers/auth-oidc/files/node/src/auth/auth.config.ts +64 -0
- package/templates/layers/auth-oidc/files/node/src/auth/auth.decorators.ts +19 -0
- package/templates/layers/auth-oidc/files/node/src/auth/auth.guard.ts +61 -0
- package/templates/layers/auth-oidc/files/node/src/auth/auth.module.ts +12 -0
- package/templates/layers/auth-oidc/files/node/src/auth/jwt-verifier.ts +97 -0
- package/templates/layers/auth-oidc/files/package.json +6 -0
- package/templates/layers/auth-oidc/files/pyproject.toml +2 -0
- package/templates/layers/auth-oidc/files/python/.env.oidc.example +14 -0
- package/templates/layers/auth-oidc/files/python/app/auth/dependencies.py +69 -0
- package/templates/layers/auth-oidc/files/python/app/auth/settings.py +32 -0
- package/templates/layers/auth-oidc/files/python/app/auth/verifier.py +57 -0
- package/templates/layers/auth-oidc/files/python/docs/auth-oidc.md +57 -0
- package/templates/layers/auth-oidc/files/python/requirements-auth-oidc.txt +4 -0
- package/templates/layers/auth-oidc/files/typescript/.env.oidc.example +21 -0
- package/templates/layers/auth-oidc/files/typescript/docs/auth-oidc.md +69 -0
- package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/callback/route.ts +43 -0
- package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/login/route.ts +40 -0
- package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/logout/route.ts +27 -0
- package/templates/layers/auth-oidc/files/typescript/src/app/api/auth/me/route.ts +12 -0
- package/templates/layers/auth-oidc/files/typescript/src/lib/auth/config.ts +98 -0
- package/templates/layers/auth-oidc/files/typescript/src/lib/auth/guard.ts +23 -0
- package/templates/layers/auth-oidc/files/typescript/src/lib/auth/oidc.ts +19 -0
- package/templates/layers/auth-oidc/files/typescript/src/lib/auth/session.ts +81 -0
- package/templates/layers/cache-redis/blueprint.yaml +186 -0
- package/templates/layers/cache-redis/files/.env.cache.example +29 -0
- package/templates/layers/cache-redis/files/Directory.Packages.props +5 -0
- package/templates/layers/cache-redis/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/cache-redis/files/docker-compose.redis.yml +33 -0
- package/templates/layers/cache-redis/files/docs/cache/redis.md +113 -0
- package/templates/layers/cache-redis/files/go.mod +1 -0
- package/templates/layers/cache-redis/files/internal/cache/cache.go +127 -0
- package/templates/layers/cache-redis/files/internal/cache/cache_test.go +113 -0
- package/templates/layers/cache-redis/files/internal/cache/config.go +110 -0
- package/templates/layers/cache-redis/files/internal/cache/memory.go +124 -0
- package/templates/layers/cache-redis/files/internal/cache/redis.go +108 -0
- package/templates/layers/cache-redis/files/package.json +5 -0
- package/templates/layers/cache-redis/files/pyproject.toml +2 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/CacheKey.cs +44 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/CacheOptions.cs +119 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/CacheStoreFactory.cs +16 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/ICacheStore.cs +37 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/MemoryCacheStore.cs +129 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/RedisCacheStore.cs +139 -0
- package/templates/layers/cache-redis/files/src/__solutionName.dot__.Cache.Redis/__solutionName.dot__.Cache.Redis.csproj +18 -0
- package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/api.py +67 -0
- package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/keys.py +39 -0
- package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/redis_store.py +85 -0
- package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/settings.py +82 -0
- package/templates/layers/cache-redis/files/src/__solutionName.snake__/cache/store.py +113 -0
- package/templates/layers/cache-redis/files/src/cache/index.ts +54 -0
- package/templates/layers/cache-redis/files/src/cache/keys.ts +28 -0
- package/templates/layers/cache-redis/files/src/cache/redis.ts +131 -0
- package/templates/layers/cache-redis/files/src/cache/settings.ts +86 -0
- package/templates/layers/cache-redis/files/src/cache/store.ts +98 -0
- package/templates/layers/cache-redis/files/tests/test_cache_redis.py +105 -0
- package/templates/layers/ci-github-actions/blueprint.yaml +174 -0
- package/templates/layers/ci-github-actions/files/.github/actions/dotnet-setup/action.yml +25 -0
- package/templates/layers/ci-github-actions/files/.github/actions/go-setup/action.yml +30 -0
- package/templates/layers/ci-github-actions/files/.github/actions/node-setup/action.yml +58 -0
- package/templates/layers/ci-github-actions/files/.github/actions/python-setup/action.yml +23 -0
- package/templates/layers/ci-github-actions/files/.github/dependabot.yml +13 -0
- package/templates/layers/ci-github-actions/files/.github/scripts/run-package-script.sh +13 -0
- package/templates/layers/ci-github-actions/files/.github/workflows/ci-dotnet.yml +85 -0
- package/templates/layers/ci-github-actions/files/.github/workflows/ci-go.yml +91 -0
- package/templates/layers/ci-github-actions/files/.github/workflows/ci-node.yml +111 -0
- package/templates/layers/ci-github-actions/files/.github/workflows/ci-python.yml +125 -0
- package/templates/layers/ci-github-actions/files/docs/ci-github-actions.md +106 -0
- package/templates/layers/db-core/blueprint.yaml +98 -0
- package/templates/layers/db-core/files/.env.example +18 -0
- package/templates/layers/db-core/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/db-core/files/docs/persistence.md +91 -0
- package/templates/layers/db-core/files/internal/db/config.go +108 -0
- package/templates/layers/db-core/files/internal/db/errors.go +61 -0
- package/templates/layers/db-core/files/internal/db/memory.go +141 -0
- package/templates/layers/db-core/files/internal/db/memory_test.go +195 -0
- package/templates/layers/db-core/files/internal/db/ports.go +76 -0
- package/templates/layers/db-core/files/internal/db/repository.go +134 -0
- package/templates/layers/db-core/files/internal/db/retry.go +30 -0
- package/templates/layers/db-core/files/package.json +5 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/DatabaseException.cs +39 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/DatabaseOptions.cs +65 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/DatabaseRetry.cs +24 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/IRepository.cs +30 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/IUnitOfWork.cs +23 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/InMemory/InMemoryDatabase.cs +188 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/Query.cs +29 -0
- package/templates/layers/db-core/files/src/__solutionName.dot__.Data/__solutionName.dot__.Data.csproj +16 -0
- package/templates/layers/db-core/files/src/__solutionName.snake__/db/api.py +63 -0
- package/templates/layers/db-core/files/src/__solutionName.snake__/db/config.py +79 -0
- package/templates/layers/db-core/files/src/__solutionName.snake__/db/errors.py +47 -0
- package/templates/layers/db-core/files/src/__solutionName.snake__/db/memory.py +143 -0
- package/templates/layers/db-core/files/src/__solutionName.snake__/db/ports.py +80 -0
- package/templates/layers/db-core/files/src/__solutionName.snake__/db/retry.py +25 -0
- package/templates/layers/db-core/files/src/db/config.ts +65 -0
- package/templates/layers/db-core/files/src/db/errors.ts +52 -0
- package/templates/layers/db-core/files/src/db/index.ts +41 -0
- package/templates/layers/db-core/files/src/db/memory.test.ts +107 -0
- package/templates/layers/db-core/files/src/db/memory.ts +182 -0
- package/templates/layers/db-core/files/src/db/ports.ts +58 -0
- package/templates/layers/db-core/files/src/db/retry.ts +20 -0
- package/templates/layers/db-core/files/tests/test_db_core.py +95 -0
- package/templates/layers/db-mongo/blueprint.yaml +157 -0
- package/templates/layers/db-mongo/files/.env.mongo.example +17 -0
- package/templates/layers/db-mongo/files/Directory.Packages.props +7 -0
- package/templates/layers/db-mongo/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/db-mongo/files/docker-compose.mongo.yml +27 -0
- package/templates/layers/db-mongo/files/docs/db-mongo.md +138 -0
- package/templates/layers/db-mongo/files/go.mod +1 -0
- package/templates/layers/db-mongo/files/internal/db/mongodb/client.go +57 -0
- package/templates/layers/db-mongo/files/internal/db/mongodb/config.go +105 -0
- package/templates/layers/db-mongo/files/internal/db/mongodb/indexes.go +42 -0
- package/templates/layers/db-mongo/files/package.json +5 -0
- package/templates/layers/db-mongo/files/pyproject.toml +2 -0
- package/templates/layers/db-mongo/files/requirements-mongo.txt +2 -0
- package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoContext.cs +21 -0
- package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoHealthCheck.cs +28 -0
- package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoIndexes.cs +25 -0
- package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoOptions.cs +23 -0
- package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/MongoServiceCollectionExtensions.cs +31 -0
- package/templates/layers/db-mongo/files/src/__solutionName.dot__.Infrastructure.Mongo/__solutionName.dot__.Infrastructure.Mongo.csproj +18 -0
- package/templates/layers/db-mongo/files/src/__solutionName.snake__/db/mongo/client.py +48 -0
- package/templates/layers/db-mongo/files/src/__solutionName.snake__/db/mongo/config.py +66 -0
- package/templates/layers/db-mongo/files/src/__solutionName.snake__/db/mongo/indexes.py +29 -0
- package/templates/layers/db-mongo/files/src/db/mongo/client.rs +37 -0
- package/templates/layers/db-mongo/files/src/db/mongo/client.ts +51 -0
- package/templates/layers/db-mongo/files/src/db/mongo/config.rs +68 -0
- package/templates/layers/db-mongo/files/src/db/mongo/config.ts +58 -0
- package/templates/layers/db-mongo/files/src/db/mongo/index.ts +3 -0
- package/templates/layers/db-mongo/files/src/db/mongo/indexes.rs +26 -0
- package/templates/layers/db-mongo/files/src/db/mongo/indexes.ts +21 -0
- package/templates/layers/db-mongo/files/src/db/mongo/mod.rs +7 -0
- package/templates/layers/db-mongo/files/src/main/java/__solutionName.lower__/db/mongo/MongoClientProvider.java +66 -0
- package/templates/layers/db-mongo/files/src/main/java/__solutionName.lower__/db/mongo/MongoConfig.java +56 -0
- package/templates/layers/db-mongo/files/src/main/java/__solutionName.lower__/db/mongo/MongoIndexes.java +26 -0
- package/templates/layers/db-postgres/blueprint.yaml +130 -0
- package/templates/layers/db-postgres/files/.env.postgres.example +31 -0
- package/templates/layers/db-postgres/files/Directory.Packages.props +5 -0
- package/templates/layers/db-postgres/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/db-postgres/files/docker-compose.postgres.yml +28 -0
- package/templates/layers/db-postgres/files/docs/postgres.md +152 -0
- package/templates/layers/db-postgres/files/go.mod +1 -0
- package/templates/layers/db-postgres/files/internal/db/postgres.go +48 -0
- package/templates/layers/db-postgres/files/internal/db/postgres_config.go +79 -0
- package/templates/layers/db-postgres/files/internal/db/postgres_errors.go +59 -0
- package/templates/layers/db-postgres/files/internal/db/postgres_migrate.go +155 -0
- package/templates/layers/db-postgres/files/migrations/0001_init.sql +9 -0
- package/templates/layers/db-postgres/files/package.json +11 -0
- package/templates/layers/db-postgres/files/pyproject.toml +2 -0
- package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/PostgresErrors.cs +57 -0
- package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/PostgresMigrator.cs +171 -0
- package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/PostgresOptions.cs +92 -0
- package/templates/layers/db-postgres/files/src/__solutionName.dot__.Data.Postgres/__solutionName.dot__.Data.Postgres.csproj +25 -0
- package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres.py +256 -0
- package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres_config.py +81 -0
- package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres_errors.py +48 -0
- package/templates/layers/db-postgres/files/src/__solutionName.snake__/db/postgres_migrate.py +132 -0
- package/templates/layers/db-postgres/files/src/db/postgres/config.ts +86 -0
- package/templates/layers/db-postgres/files/src/db/postgres/database.ts +109 -0
- package/templates/layers/db-postgres/files/src/db/postgres/errors.ts +48 -0
- package/templates/layers/db-postgres/files/src/db/postgres/index.ts +16 -0
- package/templates/layers/db-postgres/files/src/db/postgres/migrate.cli.ts +11 -0
- package/templates/layers/db-postgres/files/src/db/postgres/migrate.ts +134 -0
- package/templates/layers/db-postgres/files/src/db/postgres/repository.ts +159 -0
- package/templates/layers/db-sqlite/blueprint.yaml +147 -0
- package/templates/layers/db-sqlite/files/.env.sqlite.example +20 -0
- package/templates/layers/db-sqlite/files/.gitignore.sqlite +5 -0
- package/templates/layers/db-sqlite/files/Directory.Packages.props +6 -0
- package/templates/layers/db-sqlite/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/db-sqlite/files/docs/db/sqlite.md +91 -0
- package/templates/layers/db-sqlite/files/go.mod +1 -0
- package/templates/layers/db-sqlite/files/internal/db/sqlite/health.go +39 -0
- package/templates/layers/db-sqlite/files/internal/db/sqlite/migrate.go +106 -0
- package/templates/layers/db-sqlite/files/internal/db/sqlite/settings.go +103 -0
- package/templates/layers/db-sqlite/files/internal/db/sqlite/sqlite.go +78 -0
- package/templates/layers/db-sqlite/files/internal/db/sqlite/sqlite_test.go +94 -0
- package/templates/layers/db-sqlite/files/migrations/0001_init.sql +11 -0
- package/templates/layers/db-sqlite/files/package.json +8 -0
- package/templates/layers/db-sqlite/files/pyproject.toml +2 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteConnectionFactory.cs +67 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteHealth.cs +37 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteMigrator.cs +99 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/SqliteOptions.cs +81 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.dot__.Persistence.Sqlite/__solutionName.dot__.Persistence.Sqlite.csproj +18 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/connection.py +49 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/health.py +36 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/migrate.py +58 -0
- package/templates/layers/db-sqlite/files/src/__solutionName.snake__/db/sqlite/settings.py +68 -0
- package/templates/layers/db-sqlite/files/src/db/sqlite/cli.ts +38 -0
- package/templates/layers/db-sqlite/files/src/db/sqlite/client.ts +45 -0
- package/templates/layers/db-sqlite/files/src/db/sqlite/health.ts +30 -0
- package/templates/layers/db-sqlite/files/src/db/sqlite/index.ts +8 -0
- package/templates/layers/db-sqlite/files/src/db/sqlite/migrate.ts +51 -0
- package/templates/layers/db-sqlite/files/src/db/sqlite/settings.ts +75 -0
- package/templates/layers/db-sqlite/files/tests/test_db_sqlite.py +50 -0
- package/templates/layers/devcontainer/blueprint.yaml +130 -0
- package/templates/layers/devcontainer/files/.devcontainer/devcontainer.json +61 -0
- package/templates/layers/devcontainer/files/.devcontainer/post-create.sh +29 -0
- package/templates/layers/devcontainer/files/.devcontainer/setup-dotnet.sh +19 -0
- package/templates/layers/devcontainer/files/.devcontainer/setup-go.sh +13 -0
- package/templates/layers/devcontainer/files/.devcontainer/setup-node.sh +29 -0
- package/templates/layers/devcontainer/files/.devcontainer/setup-python.sh +32 -0
- package/templates/layers/devcontainer/files/docs/devcontainer.md +75 -0
- package/templates/layers/docker/blueprint.yaml +168 -0
- package/templates/layers/docker/files/.dockerignore +80 -0
- package/templates/layers/docker/files/.env.docker.example +17 -0
- package/templates/layers/docker/files/Dockerfile.dotnet +38 -0
- package/templates/layers/docker/files/Dockerfile.go +40 -0
- package/templates/layers/docker/files/Dockerfile.nextjs +42 -0
- package/templates/layers/docker/files/Dockerfile.nodejs +46 -0
- package/templates/layers/docker/files/Dockerfile.python +52 -0
- package/templates/layers/docker/files/Dockerfile.spa +30 -0
- package/templates/layers/docker/files/compose.yaml +35 -0
- package/templates/layers/docker/files/docker/nginx.conf +44 -0
- package/templates/layers/docker/files/docs/docker.md +115 -0
- package/templates/layers/docker/files/next.config.ts +11 -0
- package/templates/layers/docker-compose/blueprint.yaml +118 -0
- package/templates/layers/docker-compose/files/.env.compose.example +66 -0
- package/templates/layers/docker-compose/files/compose/cache-none.yml +3 -0
- package/templates/layers/docker-compose/files/compose/cache-redis.yml +28 -0
- package/templates/layers/docker-compose/files/compose/cache-valkey.yml +27 -0
- package/templates/layers/docker-compose/files/compose/db-mongo.yml +27 -0
- package/templates/layers/docker-compose/files/compose/db-mysql.yml +31 -0
- package/templates/layers/docker-compose/files/compose/db-none.yml +4 -0
- package/templates/layers/docker-compose/files/compose/db-postgres.yml +28 -0
- package/templates/layers/docker-compose/files/compose/queue-kafka.yml +35 -0
- package/templates/layers/docker-compose/files/compose/queue-nats.yml +26 -0
- package/templates/layers/docker-compose/files/compose/queue-none.yml +3 -0
- package/templates/layers/docker-compose/files/compose/queue-rabbitmq.yml +27 -0
- package/templates/layers/docker-compose/files/docker-compose.yml +20 -0
- package/templates/layers/docker-compose/files/docs/local-stack.md +135 -0
- package/templates/layers/evals/blueprint.yaml +211 -0
- package/templates/layers/evals/files/.github/workflows/evals-node.yml +55 -0
- package/templates/layers/evals/files/.github/workflows/evals-python.yml +54 -0
- package/templates/layers/evals/files/docs/evals.md +68 -0
- package/templates/layers/evals/files/evals/README.md +73 -0
- package/templates/layers/evals/files/evals/assertions.py +56 -0
- package/templates/layers/evals/files/evals/assertions.ts +66 -0
- package/templates/layers/evals/files/evals/budget.py +55 -0
- package/templates/layers/evals/files/evals/budget.ts +61 -0
- package/templates/layers/evals/files/evals/cli.ts +76 -0
- package/templates/layers/evals/files/evals/config.py +83 -0
- package/templates/layers/evals/files/evals/config.ts +77 -0
- package/templates/layers/evals/files/evals/dataset.py +90 -0
- package/templates/layers/evals/files/evals/dataset.ts +101 -0
- package/templates/layers/evals/files/evals/datasets/case.schema.json +67 -0
- package/templates/layers/evals/files/evals/datasets/golden.jsonl +4 -0
- package/templates/layers/evals/files/evals/run.py +85 -0
- package/templates/layers/evals/files/evals/runner.py +114 -0
- package/templates/layers/evals/files/evals/runner.ts +125 -0
- package/templates/layers/evals/files/evals/target.ts +95 -0
- package/templates/layers/evals/files/evals/targets.py +103 -0
- package/templates/layers/evals/files/evals/tracing.py +49 -0
- package/templates/layers/evals/files/evals/tracing.ts +31 -0
- package/templates/layers/evals/files/evals/tsconfig.json +15 -0
- package/templates/layers/health-checks/blueprint.yaml +170 -0
- package/templates/layers/health-checks/files/.env.health.example +23 -0
- package/templates/layers/health-checks/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/health-checks/files/docs/health-checks.md +200 -0
- package/templates/layers/health-checks/files/internal/health/config.go +96 -0
- package/templates/layers/health-checks/files/internal/health/health.go +113 -0
- package/templates/layers/health-checks/files/internal/health/health_test.go +102 -0
- package/templates/layers/health-checks/files/internal/health/http.go +56 -0
- package/templates/layers/health-checks/files/internal/health/probes.go +88 -0
- package/templates/layers/health-checks/files/internal/health/runner.go +100 -0
- package/templates/layers/health-checks/files/package.json +5 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/DependencyProbeOptions.cs +26 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthEndpointExtensions.cs +34 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthOptions.cs +25 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthProbeResponder.cs +121 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthServiceCollectionExtensions.cs +51 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HealthTags.cs +10 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/HttpDependencyHealthCheck.cs +44 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/TcpDependencyHealthCheck.cs +36 -0
- package/templates/layers/health-checks/files/src/__solutionName.dot__.Health/__solutionName.dot__.Health.csproj +15 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/__init__.py +28 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/models.py +48 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/probes.py +82 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/register.py +15 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/registry.py +24 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/router.py +52 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/runner.py +94 -0
- package/templates/layers/health-checks/files/src/__solutionName.snake__/health/settings.py +33 -0
- package/templates/layers/health-checks/files/src/app/health/live/route.ts +11 -0
- package/templates/layers/health-checks/files/src/app/health/ready/route.ts +10 -0
- package/templates/layers/health-checks/files/src/app/health/startup/route.ts +10 -0
- package/templates/layers/health-checks/files/src/health/__tests__/health.test.ts +66 -0
- package/templates/layers/health-checks/files/src/health/config.ts +62 -0
- package/templates/layers/health-checks/files/src/health/handler.ts +50 -0
- package/templates/layers/health-checks/files/src/health/index.ts +20 -0
- package/templates/layers/health-checks/files/src/health/node/http.ts +26 -0
- package/templates/layers/health-checks/files/src/health/node/tcp.ts +36 -0
- package/templates/layers/health-checks/files/src/health/probes.ts +61 -0
- package/templates/layers/health-checks/files/src/health/register.ts +15 -0
- package/templates/layers/health-checks/files/src/health/registry.ts +27 -0
- package/templates/layers/health-checks/files/src/health/runner.ts +76 -0
- package/templates/layers/health-checks/files/src/health/types.ts +39 -0
- package/templates/layers/health-checks/files/tests/__init__.py +1 -0
- package/templates/layers/health-checks/files/tests/test_health.py +51 -0
- package/templates/layers/lint-format/blueprint.yaml +178 -0
- package/templates/layers/lint-format/files/.editorconfig +87 -0
- package/templates/layers/lint-format/files/.golangci.yml +34 -0
- package/templates/layers/lint-format/files/.prettierignore +20 -0
- package/templates/layers/lint-format/files/.prettierrc.json +11 -0
- package/templates/layers/lint-format/files/docs/lint-format.md +111 -0
- package/templates/layers/lint-format/files/eslint.config.mjs +43 -0
- package/templates/layers/lint-format/files/package.json +9 -0
- package/templates/layers/lint-format/files/ruff.toml +25 -0
- package/templates/layers/observability-otel/blueprint.yaml +212 -0
- package/templates/layers/observability-otel/files/.env.otel.example +30 -0
- package/templates/layers/observability-otel/files/Directory.Packages.props +8 -0
- package/templates/layers/observability-otel/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/observability-otel/files/docker-compose.otel.yml +16 -0
- package/templates/layers/observability-otel/files/docs/observability.md +224 -0
- package/templates/layers/observability-otel/files/go.mod +7 -0
- package/templates/layers/observability-otel/files/internal/telemetry/config.go +122 -0
- package/templates/layers/observability-otel/files/internal/telemetry/http.go +33 -0
- package/templates/layers/observability-otel/files/internal/telemetry/logging.go +84 -0
- package/templates/layers/observability-otel/files/internal/telemetry/provider.go +77 -0
- package/templates/layers/observability-otel/files/otel-collector-config.yaml +47 -0
- package/templates/layers/observability-otel/files/package.json +15 -0
- package/templates/layers/observability-otel/files/pyproject.toml +2 -0
- package/templates/layers/observability-otel/files/src/__solutionName.dot__.Observability/ObservabilityExtensions.cs +81 -0
- package/templates/layers/observability-otel/files/src/__solutionName.dot__.Observability/ObservabilityOptions.cs +37 -0
- package/templates/layers/observability-otel/files/src/__solutionName.dot__.Observability/__solutionName.dot__.Observability.csproj +25 -0
- package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/__init__.py +15 -0
- package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/config.py +99 -0
- package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/log.py +86 -0
- package/templates/layers/observability-otel/files/src/__solutionName.snake__/otel/setup.py +124 -0
- package/templates/layers/observability-otel/files/src/instrumentation.ts +9 -0
- package/templates/layers/observability-otel/files/src/otel/config.ts +83 -0
- package/templates/layers/observability-otel/files/src/otel/logger.ts +46 -0
- package/templates/layers/observability-otel/files/src/otel/register.ts +5 -0
- package/templates/layers/observability-otel/files/src/otel/sdk.ts +73 -0
- package/templates/layers/queue-broker/blueprint.yaml +194 -0
- package/templates/layers/queue-broker/files/.env.queue.example +35 -0
- package/templates/layers/queue-broker/files/Directory.Packages.props +7 -0
- package/templates/layers/queue-broker/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/queue-broker/files/cmd/worker/main.go +34 -0
- package/templates/layers/queue-broker/files/docker-compose.queue-rabbitmq.yml +26 -0
- package/templates/layers/queue-broker/files/docker-compose.queue-redis.yml +23 -0
- package/templates/layers/queue-broker/files/docs/queue-asynq.md +71 -0
- package/templates/layers/queue-broker/files/docs/queue-bullmq.md +62 -0
- package/templates/layers/queue-broker/files/docs/queue-celery.md +58 -0
- package/templates/layers/queue-broker/files/docs/queue-masstransit.md +84 -0
- package/templates/layers/queue-broker/files/go.mod +2 -0
- package/templates/layers/queue-broker/files/internal/queue/client.go +57 -0
- package/templates/layers/queue-broker/files/internal/queue/config.go +109 -0
- package/templates/layers/queue-broker/files/internal/queue/config_test.go +38 -0
- package/templates/layers/queue-broker/files/internal/queue/handlers.go +33 -0
- package/templates/layers/queue-broker/files/internal/queue/server.go +29 -0
- package/templates/layers/queue-broker/files/internal/queue/tasks.go +11 -0
- package/templates/layers/queue-broker/files/package.json +6 -0
- package/templates/layers/queue-broker/files/pyproject.toml +2 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/Consumers/WelcomeEmailRequestedConsumer.cs +24 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/Contracts/WelcomeEmailRequested.cs +7 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/IJobPublisher.cs +11 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/JobPublisher.cs +10 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/QueueOptions.cs +32 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/QueueServiceCollectionExtensions.cs +60 -0
- package/templates/layers/queue-broker/files/src/__solutionName.dot__.Queue/__solutionName.dot__.Queue.csproj +21 -0
- package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/__init__.py +12 -0
- package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/app.py +35 -0
- package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/config.py +90 -0
- package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/producer.py +10 -0
- package/templates/layers/queue-broker/files/src/__solutionName.snake__/queue/tasks.py +31 -0
- package/templates/layers/queue-broker/files/src/queue/config.ts +60 -0
- package/templates/layers/queue-broker/files/src/queue/connection.ts +19 -0
- package/templates/layers/queue-broker/files/src/queue/handlers.ts +22 -0
- package/templates/layers/queue-broker/files/src/queue/index.ts +8 -0
- package/templates/layers/queue-broker/files/src/queue/jobs.ts +15 -0
- package/templates/layers/queue-broker/files/src/queue/producer.ts +39 -0
- package/templates/layers/queue-broker/files/src/queue/worker.cli.ts +32 -0
- package/templates/layers/queue-broker/files/src/queue/worker.ts +28 -0
- package/templates/layers/queue-broker/files/tests/test_queue_config.py +37 -0
- package/templates/layers/release-automation/blueprint.yaml +205 -0
- package/templates/layers/release-automation/files/.changeset/README.md +31 -0
- package/templates/layers/release-automation/files/.changeset/config.json +12 -0
- package/templates/layers/release-automation/files/.githooks/commit-msg +32 -0
- package/templates/layers/release-automation/files/.github/workflows/commit-conventions.yml +45 -0
- package/templates/layers/release-automation/files/.github/workflows/release-changesets.yml +68 -0
- package/templates/layers/release-automation/files/.github/workflows/release-dotnet.yml +90 -0
- package/templates/layers/release-automation/files/.github/workflows/release-go.yml +89 -0
- package/templates/layers/release-automation/files/.github/workflows/release-monorepo.yml +40 -0
- package/templates/layers/release-automation/files/.github/workflows/release-node.yml +85 -0
- package/templates/layers/release-automation/files/.github/workflows/release-python.yml +68 -0
- package/templates/layers/release-automation/files/.release-please-manifest.json +3 -0
- package/templates/layers/release-automation/files/docs/release-automation.md +154 -0
- package/templates/layers/release-automation/files/release-please-config.json +22 -0
- package/templates/layers/security-supply-chain/blueprint.yaml +208 -0
- package/templates/layers/security-supply-chain/files/.githooks/pre-commit +17 -0
- package/templates/layers/security-supply-chain/files/.github/dependabot.yml +30 -0
- package/templates/layers/security-supply-chain/files/.github/workflows/codeql.yml +54 -0
- package/templates/layers/security-supply-chain/files/.github/workflows/dependency-review.yml +35 -0
- package/templates/layers/security-supply-chain/files/.github/workflows/sbom.yml +56 -0
- package/templates/layers/security-supply-chain/files/.github/workflows/scorecard.yml +51 -0
- package/templates/layers/security-supply-chain/files/.github/workflows/secret-scan.yml +62 -0
- package/templates/layers/security-supply-chain/files/.gitleaks.toml +42 -0
- package/templates/layers/security-supply-chain/files/SECURITY.md +36 -0
- package/templates/layers/security-supply-chain/files/docs/security-supply-chain.md +124 -0
- package/templates/layers/security-supply-chain/files/npmrc +13 -0
- package/templates/layers/security-supply-chain/files/renovate.json +26 -0
- package/templates/layers/testing-e2e/blueprint.yaml +199 -0
- package/templates/layers/testing-e2e/files/.env.e2e.example +32 -0
- package/templates/layers/testing-e2e/files/Directory.Packages.props +7 -0
- package/templates/layers/testing-e2e/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/testing-e2e/files/docs/testing-e2e.md +106 -0
- package/templates/layers/testing-e2e/files/e2e/api/contract.spec.ts +37 -0
- package/templates/layers/testing-e2e/files/e2e/api/health.spec.ts +29 -0
- package/templates/layers/testing-e2e/files/e2e/browser/app.spec.ts +27 -0
- package/templates/layers/testing-e2e/files/e2e/browser/navigation.spec.ts +26 -0
- package/templates/layers/testing-e2e/files/e2e/config.ts +85 -0
- package/templates/layers/testing-e2e/files/e2e/support.ts +20 -0
- package/templates/layers/testing-e2e/files/package.json +8 -0
- package/templates/layers/testing-e2e/files/playwright.config.ts +44 -0
- package/templates/layers/testing-e2e/files/test/e2e/config.go +71 -0
- package/templates/layers/testing-e2e/files/test/e2e/contract_test.go +65 -0
- package/templates/layers/testing-e2e/files/test/e2e/health_test.go +71 -0
- package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/ApiContractTests.cs +51 -0
- package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/DeploymentFixture.cs +44 -0
- package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/E2eSettings.cs +26 -0
- package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/HealthContractTests.cs +42 -0
- package/templates/layers/testing-e2e/files/tests/__solutionName.dot__.E2E/__solutionName.dot__.E2E.csproj +23 -0
- package/templates/layers/testing-e2e/files/tests/e2e/conftest.py +52 -0
- package/templates/layers/testing-e2e/files/tests/e2e/e2e_config.py +47 -0
- package/templates/layers/testing-e2e/files/tests/e2e/test_api_contract.py +35 -0
- package/templates/layers/testing-e2e/files/tests/e2e/test_health_contract.py +28 -0
- package/templates/layers/testing-unit/blueprint.yaml +161 -0
- package/templates/layers/testing-unit/files/.coveragerc +12 -0
- package/templates/layers/testing-unit/files/Directory.Packages.props +9 -0
- package/templates/layers/testing-unit/files/__solutionName.dot__.slnx +5 -0
- package/templates/layers/testing-unit/files/docs/testing.md +90 -0
- package/templates/layers/testing-unit/files/internal/testsupport/clock.go +89 -0
- package/templates/layers/testing-unit/files/internal/testsupport/clock_test.go +132 -0
- package/templates/layers/testing-unit/files/internal/testsupport/recorder.go +41 -0
- package/templates/layers/testing-unit/files/package.json +10 -0
- package/templates/layers/testing-unit/files/pyproject.toml +2 -0
- package/templates/layers/testing-unit/files/pytest.ini +16 -0
- package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/Recorder.cs +66 -0
- package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/RecorderTests.cs +90 -0
- package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/__solutionName.dot__.Tests.csproj +32 -0
- package/templates/layers/testing-unit/files/tests/__solutionName.dot__.Tests/coverlet.runsettings +17 -0
- package/templates/layers/testing-unit/files/tests/conftest.py +17 -0
- package/templates/layers/testing-unit/files/tests/support/clock.ts +81 -0
- package/templates/layers/testing-unit/files/tests/support/index.ts +2 -0
- package/templates/layers/testing-unit/files/tests/support/recorder.ts +21 -0
- package/templates/layers/testing-unit/files/tests/support.py +78 -0
- package/templates/layers/testing-unit/files/tests/support.test.ts +87 -0
- package/templates/layers/testing-unit/files/tests/test_support.py +85 -0
- package/templates/layers/testing-unit/files/vitest.config.ts +52 -0
|
@@ -0,0 +1,697 @@
|
|
|
1
|
+
# Groundplan source catalog - curated index
|
|
2
|
+
|
|
3
|
+
**Generated:** 2026-07-19 | **Categories:** 17 | **Unique repositories:** 304 (313 catalog entries; 14 cross-category duplicates collapsed to one canonical entry each)
|
|
4
|
+
|
|
5
|
+
| class | count |
|
|
6
|
+
|---|---:|
|
|
7
|
+
| vendorable | 283 |
|
|
8
|
+
| reference-only | 5 |
|
|
9
|
+
| excluded | 16 |
|
|
10
|
+
|
|
11
|
+
Per-category detail - full `whatToBorrow` / `whatToAvoid` / `proposedLayerIds` - lives in the sibling
|
|
12
|
+
`*.yaml` files. This README is the index; the YAML is the record. The consolidated build plan is
|
|
13
|
+
[`layer-plan.yaml`](./layer-plan.yaml); what nothing here covers is [`gaps.md`](./gaps.md).
|
|
14
|
+
|
|
15
|
+
## How to read the license gate
|
|
16
|
+
|
|
17
|
+
- **vendorable** - MIT, Apache-2.0, BSD-2/3-Clause, ISC, Unlicense, 0BSD, CC0-1.0. Copy and adapt freely; preserve notices where the license requires it (see [Attribution](#attribution)).
|
|
18
|
+
- **reference-only** - MPL-2.0, LGPL, EPL, CC-BY-SA, standards-body licenses. Read for ideas. **Copy no files, no config, no prose.**
|
|
19
|
+
- **excluded** - GPL/AGPL, source-available (BUSL, FSL, ELv2, Commons Clause), CC-BY-NC-ND, **or no LICENSE file at all**. An unlicensed repo is all-rights-reserved, not free.
|
|
20
|
+
|
|
21
|
+
`spdx` below is the SPDX id implied by the **LICENSE text that was actually fetched and read**, not
|
|
22
|
+
the GitHub API's `license.spdx_id`. Where the two disagreed the text won, and every such disagreement
|
|
23
|
+
is recorded in the originating category YAML header.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Vendorable sources (283)
|
|
28
|
+
|
|
29
|
+
Code may be copied and adapted into generated repositories. Grouped by the category that owns the
|
|
30
|
+
canonical entry; a source listed under two categories is cross-referenced in both.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### agent-tooling
|
|
34
|
+
|
|
35
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
36
|
+
|---|---:|---|---|---|---|
|
|
37
|
+
| [obra/superpowers](https://github.com/obra/superpowers) | 257066 | MIT | | - | The highest-value vendorable skills collection found, and one of very few that already ships per-harness installers for Claude Code, Codex CLI, Cursor, OpenCode, Antigravity, Factory Droid, Copilot CLI, Kimi Code and Pi — ... |
|
|
38
|
+
| [github/spec-kit](https://github.com/github/spec-kit) | 122114 | MIT | | - | Two distinct assets. First, the spec-driven workflow itself — /specify -> /plan -> /tasks — as the reference implementation of turning a spec into an executable agent workflow. Second, and more valuable to us, AGENTS.md is the ... |
|
|
39
|
+
| [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) | 90934 | MIT | | - | The largest MCP directory that is also MIT, which makes it the one whose categorization we can legally reuse. Borrow its category axis and its per-entry legend marking transport (stdio/SSE), implementation language, and platform ... |
|
|
40
|
+
| [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) | 88611 | Apache-2.0 | | - | The canonical reference servers maintained by the MCP steering group — the authoritative implementations of the servers Groundplan should offer by default (filesystem, git, fetch, memory, sequential thinking, time). Borrow their ... |
|
|
41
|
+
| [bmad-code-org/BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD) | 50775 | MIT | | - | A large, MIT, actively-developed multi-agent methodology with a defined role set — Analyst, PM, Architect, Scrum Master, Developer, QA — and, more usefully, explicit handoff artifacts between them (brief -> PRD -> architecture -> ... |
|
|
42
|
+
| [PatrickJS/awesome-cursorrules](https://github.com/PatrickJS/awesome-cursorrules) | 40355 | CC0-1.0 | | - | Hundreds of per-stack rule files released into the public domain, so they can be vendored, edited, and relicensed with no attribution obligation whatsoever. This is the cheapest way to populate Groundplan's per-stack rule layer ... |
|
|
43
|
+
| [wshobson/agents](https://github.com/wshobson/agents) | 38023 | MIT | | - | This repo IS a one-source-of-truth-to-many-harnesses compiler, which is Groundplan's exact architecture, already load-bearing at 203 agents / 175 skills / 94 plugins. Steal the design wholesale. `plugins/` is the single source; ... |
|
|
44
|
+
| [github/awesome-copilot](https://github.com/github/awesome-copilot) | 36746 | MIT | | - | GitHub's own MIT-licensed collection, and the single best source for the Copilot target. Structurally it has already converged on the same four artifact types Groundplan emits — Agents, Instructions, Skills, and Plugins (bundles ... |
|
|
45
|
+
| [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp) | 35238 | Apache-2.0 | | - | The browser-automation server, and the best worked argument for structured over visual context: it drives pages via the accessibility tree rather than screenshots, so it works with any model and costs a fraction of the tokens. ... |
|
|
46
|
+
| [github/github-mcp-server](https://github.com/github/github-mcp-server) | 31532 | MIT | | - | GitHub's own first-party server and the one every default MCP config should include. Its standout borrowable idea is toolset gating — the ability to enable only subsets (repos, issues, pull requests, actions, code security) ... |
|
|
47
|
+
| [modelcontextprotocol/python-sdk](https://github.com/modelcontextprotocol/python-sdk) | 23650 | MIT | | - | The Python counterpart, and cleanly MIT with no transition caveat. Its FastMCP-style decorator API turns a plain function plus type hints into a schema-complete tool, which is the lowest-ceremony MCP server template we can offer ... |
|
|
48
|
+
| [VoltAgent/awesome-claude-code-subagents](https://github.com/VoltAgent/awesome-claude-code-subagents) | 23474 | MIT | | - | 154 MIT-licensed subagent definitions filed under a stable numbered taxonomy — categories/01-core-development/ through categories/09-meta-orchestration/ — where each agent is one self-contained markdown file. Concretely useful ... |
|
|
49
|
+
| [agentskills/agentskills](https://github.com/agentskills/agentskills) | 23184 | Apache-2.0 | | - | The normative Agent Skills specification — docs/specification.mdx. This is the single most load-bearing document for Groundplan's skill layer, and it is Apache-2.0, unlike Anthropic's own skills repo. Borrow the frontmatter ... |
|
|
50
|
+
| [agentsmd/agents.md](https://github.com/agentsmd/agents.md) | 23086 | MIT | | - | The AGENTS.md format definition and its worked examples from README.md. The value is the conventions, not the prose: a single root AGENTS.md, nested AGENTS.md files in subdirectories where the nearest-ancestor file wins, and the ... |
|
|
51
|
+
| [modelcontextprotocol/registry](https://github.com/modelcontextprotocol/registry) | 7044 | Apache-2.0 | | - | The official registry's server-metadata schema — how an MCP server declares its identity, package/runtime, transport, and configuration inputs. If Groundplan emits MCP config for 14 tools, resolving servers against this schema ... |
|
|
52
|
+
| [steipete/agent-rules](https://github.com/steipete/agent-rules) | 5691 | MIT | | - | Its premise is the one that matters most to us: the same rule file should work across Claude Code and Cursor rather than being authored twice. That cross-tool framing is rarer than it should be, and it makes this the most ... |
|
|
53
|
+
| [wong2/awesome-mcp-servers](https://github.com/wong2/awesome-mcp-servers) | 4214 | MIT | | - | A deliberately smaller, more curated MIT list. Its value relative to punkpeye is precision: use the intersection of the two as a quality signal when picking which servers earn a place in a default profile. |
|
|
54
|
+
| [Pimzino/claude-code-spec-workflow](https://github.com/Pimzino/claude-code-spec-workflow) | 3798 | MIT | | - | An MIT implementation of the requirements -> design -> tasks -> implementation spec chain as installable slash commands, with document state persisted to disk between phases. Useful as the small, vendorable counterweight to ... |
|
|
55
|
+
| [sanjeed5/awesome-cursor-rules-mdc](https://github.com/sanjeed5/awesome-cursor-rules-mdc) | 3553 | CC0-1.0 | | - | CC0 rules already authored natively in the .mdc format rather than converted from legacy .cursorrules, so the frontmatter is consistent and machine-parseable across the whole set. That consistency makes it the better bulk-import ... |
|
|
56
|
+
| [crystaldba/postgres-mcp](https://github.com/crystaldba/postgres-mcp) | 3081 | MIT | | - | The strongest Postgres MCP server now that the reference one is retired, and the right default for any template scaffolding Postgres. Two things to borrow beyond the server itself: its explicit access-control model with a genuine ... |
|
|
57
|
+
| [brennercruvinel/CCPlugins](https://github.com/brennercruvinel/CCPlugins) | 2700 | MIT | | - | A flat commands/ directory of professional-workflow slash commands plus, more usefully, a complete install/uninstall story in four scripts — install.py, install.sh, uninstall.py, uninstall.sh. Clean uninstall is the part almost ... |
|
|
58
|
+
| [wshobson/commands](https://github.com/wshobson/commands) | 2573 | MIT | | - | 57 MIT command definitions split into a genuinely useful two-tier taxonomy: tools/ (42 single-purpose commands) versus workflows/ (15 multi-agent orchestrations). That tool-vs-workflow distinction is the cleanest articulation of ... |
|
|
59
|
+
| [lst97/claude-code-sub-agents](https://github.com/lst97/claude-code-sub-agents) | 1619 | MIT | | - | A coherent full-stack-oriented agent set assembled for one person's real workflow, which makes its inter-agent handoffs more considered than the big scraped collections. Useful as a worked example of a small, opinionated agent ... |
|
|
60
|
+
| [obra/superpowers-marketplace](https://github.com/obra/superpowers-marketplace) | 1162 | MIT | | - | A minimal, readable implementation of the plugin-marketplace manifest — the index format that maps plugin ids to source repos and versions. Worth borrowing as the shape of Groundplan's own registry index if we ever publish one ... |
|
|
61
|
+
| [0xfurai/claude-code-subagents](https://github.com/0xfurai/claude-code-subagents) | 961 | MIT | | - | 100+ narrowly-scoped, one-domain-per-agent definitions. Its useful contribution is granularity: agents are scoped to a single language or library rather than a job title, which makes them far easier to auto-select and far less ... |
|
|
62
|
+
| [ccplugins/awesome-claude-code-plugins](https://github.com/ccplugins/awesome-claude-code-plugins) | 882 | Apache-2.0 | | - | The rare permissively-licensed curated list in this space, which makes it the one directory whose taxonomy we can actually copy. Its framing — a plugin is a bundle that may contain slash commands, subagents, MCP servers, and ... |
|
|
63
|
+
| [TensorBlock/awesome-mcp-servers](https://github.com/TensorBlock/awesome-mcp-servers) | 788 | MIT | | - | Breadth at machine scale — it indexes roughly 7.7k unique server links, far more than any hand-curated list, and it is MIT. Useful specifically as a coverage check: if Groundplan believes no MCP server exists for some capability, ... |
|
|
64
|
+
| [obra/superpowers-skills](https://github.com/obra/superpowers-skills) | 727 | MIT | | - | Only useful as a frozen, MIT-clean snapshot of community skills at the point the community -editable fork was retired. If a skill you want from obra/superpowers has murky contribution history, the same file here is a cleaner ... |
|
|
65
|
+
| [karanb192/claude-code-hooks](https://github.com/karanb192/claude-code-hooks) | 449 | MIT | | - | Real, tested, MIT hook scripts with named files rather than blog-post snippets. PreToolUse: hook-scripts/pre-tool-use/block-dangerous-commands.js (rm -rf ~, fork bombs, curl/sh), protect-secrets.js (blocks ... |
|
|
66
|
+
| [cyanheads/git-mcp-server](https://github.com/cyanheads/git-mcp-server) | 228 | Apache-2.0 | | - | A maintained, permissively-licensed standalone git MCP server covering the full porcelain surface (status, diff, branch, commit, stash, tags, remotes) — useful as the git option in an emitted config when the reference server's ... |
|
|
67
|
+
| [ithiria894/awesome-claude-code-hooks](https://github.com/ithiria894/awesome-claude-code-hooks) | 18 | CC0-1.0 | | - | The only hook directory we found that is both curated and CC0, so its taxonomy can be copied outright. Its category set is a ready-made spine for Groundplan's hook registry: Security and Prompt Injection, Safety and Protection, ... |
|
|
68
|
+
| [mafiaguy/claude-security-guardrails](https://github.com/mafiaguy/claude-security-guardrails) | 2 | MIT | | - | The enumerated block-list is the borrowable asset, not the implementation: rm -rf, force pushes, leaked API keys, SQL injection, eval(), and ~30 further risky patterns, wired through PreToolUse and PostToolUse. Use it as a ... |
|
|
69
|
+
|
|
70
|
+
### agent-tooling, ai-llm
|
|
71
|
+
|
|
72
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
73
|
+
|---|---:|---|---|---|---|
|
|
74
|
+
| [openai/openai-agents-python](https://github.com/openai/openai-agents-python) | 27995 | MIT | | - | A root AGENTS.md on a large, genuinely active production library — the useful kind of exemplar, because it is maintained under real contribution pressure rather than written once for show. Borrow the concrete-commands-over-prose ... |
|
|
75
|
+
| [modelcontextprotocol/typescript-sdk](https://github.com/modelcontextprotocol/typescript-sdk) | 12884 | Apache-2.0 | | - | The SDK Groundplan's own templates should scaffold against for any TypeScript MCP server, and the reference for MCP prompts and resources — the two primitives most collections ignore in favor of tools. MCP prompts are the closest ... |
|
|
76
|
+
|
|
77
|
+
### ai-llm
|
|
78
|
+
|
|
79
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
80
|
+
|---|---:|---|---|---|---|
|
|
81
|
+
| [langchain-ai/langgraph](https://github.com/langchain-ai/langgraph) | 37569 | MIT | Python + JS, graph runtime, Postgres/SQLite checkpointers | professional | The durable-execution model for agents that must survive restarts. Borrow the `StateGraph` + reducer-annotated state (`Annotated[list, add_messages]`), the checkpointer interface with its `langgraph-checkpoint-postgres` and ... |
|
|
82
|
+
| [qdrant/qdrant](https://github.com/qdrant/qdrant) | 33379 | Apache-2.0 | Rust server; gRPC + REST; official Python/JS/Go/Rust clients | professional | The production rung for a dedicated vector service. Borrow the deployment surface, not the source: a `docker-compose.yml` pinned to a version with a named volume, a `config.yaml` override for storage and optimizer settings, and ... |
|
|
83
|
+
| [langfuse/langfuse](https://github.com/langfuse/langfuse) | 31381 | MIT | TypeScript, Next.js, tRPC, Postgres + ClickHouse + Redis + ... | enterprise | The self-hostable LLM observability stack. Borrow the OTel-based tracing integration (traces/spans/generations with token and cost attribution), the prompt-management API — versioned, labelled prompts fetched at runtime with a ... |
|
|
84
|
+
| [chroma-core/chroma](https://github.com/chroma-core/chroma) | 28821 | Apache-2.0 | Rust core with Python and TypeScript clients; embedded or ... | simple | The lowest-friction vector store, and the right choice for the simple rung: `PersistentClient(path=...)` gives a working RAG demo with no container and no service to run. Borrow the collection API (`add`/`query` with documents, ... |
|
|
85
|
+
| [PrefectHQ/fastmcp](https://github.com/PrefectHQ/fastmcp) | 26253 | Apache-2.0 | Python 3.10+, pydantic, httpx, uv | professional | The most complete Python MCP server framework. Borrow the decorator surface (`@mcp.tool`, `@mcp.resource("uri://{param}")`, `@mcp.prompt`) with automatic schema generation from type hints, the auth provider set (OAuth proxy, JWT, ... |
|
|
86
|
+
| [vercel/ai](https://github.com/vercel/ai) | 25631 | Apache-2.0 | TypeScript monorepo, provider packages, React/Svelte/Vue ... | professional | Depend on the package; borrow the patterns from `examples/`. Specifically `examples/next-openai` route handlers for `streamText`, `generateObject` (zod-validated structured output), tool definitions with `inputSchema`, and ... |
|
|
87
|
+
| [promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 23389 | MIT | TypeScript/Node CLI, YAML config, GitHub Actions integration | standard | Declarative, config-first evals — the natural fit for a scaffolder because the deliverable is a single file. Borrow the `promptfooconfig.yaml` schema (providers × prompts × tests, with `assert` blocks), the assertion taxonomy ... |
|
|
88
|
+
| [pgvector/pgvector](https://github.com/pgvector/pgvector) | 22242 | PostgreSQL | C Postgres extension; clients for Python, Node, Go, Rust, ... | standard | The default answer for teams that already run Postgres and do not want a second datastore. Borrow the migration shape — `CREATE EXTENSION vector`, a `vector(1536)` column, then an HNSW index (`USING hnsw (embedding ... |
|
|
89
|
+
| [vercel/chatbot](https://github.com/vercel/chatbot) | 20639 | Apache-2.0 | TypeScript, Next.js 15 (App Router), AI SDK 5, Drizzle, ... | standard | The reference full-stack AI chat app. Adapt `app/(chat)/api/chat/route.ts` (streaming POST handler, resumable stream ids, stop/regenerate), `lib/db/schema.ts` (chat, message, vote, document tables — a proven message-persistence ... |
|
|
90
|
+
| [pydantic/pydantic-ai](https://github.com/pydantic/pydantic-ai) | 18636 | MIT | Python 3.9+, pydantic v2, FastAPI-friendly, OpenTelemetry | standard | The typed-agent pattern: `Agent[DepsType, OutputType]` with dependency injection via `RunContext`, so tools receive a typed deps object (db pool, http client) instead of reaching for globals — the cleanest testability story in ... |
|
|
91
|
+
| [confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 16937 | Apache-2.0 | Python, pytest integration, LLM-as-judge metrics | standard | Evals as unit tests — the Python counterpart to promptfoo. Borrow the pytest integration (`assert_test(test_case, [metric])` in a normal `test_*.py`, run via `deepeval test run`), which means eval failures surface in the same CI ... |
|
|
92
|
+
| [assistant-ui/assistant-ui](https://github.com/assistant-ui/assistant-ui) | 11147 | MIT | TypeScript, React, Radix-style headless primitives, ... | standard | Headless chat primitives (`Thread`, `Composer`, `MessagePrimitive`, `BranchPicker`) that cleanly separate chat state from styling — the right shape for a template that must restyle per project. Borrow the runtime-adapter ... |
|
|
93
|
+
| [Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 7708 | MIT | Python (Quart) backend, React/TypeScript frontend, Bicep + ... | enterprise | The most complete open reference for regulated-context RAG. Borrow `app/backend/approaches/` — `retrievethenread.py` and `chatreadretrieveread.py` are the two canonical RAG topologies written out cleanly, including query ... |
|
|
94
|
+
| [cloudflare/agents-starter](https://github.com/cloudflare/agents-starter) | 1294 | MIT | TypeScript, Cloudflare Workers, Durable Objects, agents ... | simple | A genuinely small, complete edge-agent template — the whole repo is close to template-shaped already. Borrow `src/server.ts` (an `AIChatAgent` subclass whose per-conversation state lives in a Durable Object, giving stateful chat ... |
|
|
95
|
+
|
|
96
|
+
### auth
|
|
97
|
+
|
|
98
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
99
|
+
|---|---:|---|---|---|---|
|
|
100
|
+
| [keycloak/keycloak](https://github.com/keycloak/keycloak) | 35722 | Apache-2.0 | java | enterprise | The default when the requirement sheet says SAML, LDAP/AD federation, identity brokering, fine-grained admin delegation or regulated-environment audit. Borrow `quarkus/container/Dockerfile` (the official image build, and the ... |
|
|
101
|
+
| [better-auth/better-auth](https://github.com/better-auth/better-auth) | 29222 | MIT | typescript | standard | The default recommendation for any new TypeScript project in 2026, and the richest single source in this category. Borrow the plugin composition model from `packages/better-auth/src/plugins/` — 28 first-party plugins that map ... |
|
|
102
|
+
| [authelia/authelia](https://github.com/authelia/authelia) | 28318 | Apache-2.0 | go | professional | The best single-file example of declarative authorization config: `config.template.yml` covers `access_control` rules (per-domain, per-resource, per-subject policies of bypass / one_factor / two_factor / deny), session config ... |
|
|
103
|
+
| [nextauthjs/next-auth](https://github.com/nextauthjs/next-auth) | 28309 | ISC | typescript | standard | The most valuable asset is data, not runtime: `packages/core/src/providers/` holds 80+ hand-maintained OAuth/OIDC provider configs (endpoints, scopes, profile-claim mapping) that are tedious to write and easy to lift. Also borrow ... |
|
|
104
|
+
| [casbin/casbin](https://github.com/casbin/casbin) | 20255 | Apache-2.0 | go | simple | The `examples/` directory is the payload, not the Go code: model.conf + policy.csv pairs that encode every common authorization shape as data you can drop into a template — `basic_model`, `rbac_model`, `rbac_with_domains` ... |
|
|
105
|
+
| [ory/hydra](https://github.com/ory/hydra) | 17407 | Apache-2.0 | go | professional | A certified OAuth 2.1 / OIDC provider that deliberately owns no users — it delegates login and consent to your app over a documented handshake. Borrow the docker-compose quickstart and, more importantly, the login/consent app ... |
|
|
106
|
+
| [oauth2-proxy/oauth2-proxy](https://github.com/oauth2-proxy/oauth2-proxy) | 14679 | MIT | go | simple | The "add SSO without touching the app" layer. Borrow `contrib/oauth2-proxy.cfg.example` as the config template, `contrib/oauth2-proxy.service.example` for bare-metal systemd deploys, and `contrib/local-environment/` for the ... |
|
|
107
|
+
| [ory/kratos](https://github.com/ory/kratos) | 13768 | Apache-2.0 | go | professional | Headless identity management — the API-first alternative to bolting auth into the app. Borrow `contrib/quickstart/kratos/email-password/kratos.yml` (self-service flow config: registration, login, recovery, verification, settings, ... |
|
|
108
|
+
| [lucia-auth/lucia](https://github.com/lucia-auth/lucia) | 10460 | MIT AND 0BSD | typescript | simple | Lucia is no longer a library — since March 2025 it is a reference implementation of session auth you copy into your own project, which is exactly what a scaffolder wants. Borrow the session primitive: generate a random token, ... |
|
|
109
|
+
| [fullstackhero/dotnet-starter-kit](https://github.com/fullstackhero/dotnet-starter-kit) | 6653 | MIT | dotnet | professional | The best worked example of application-level auth in .NET 10 rather than a protocol library. Borrow the JWT issuance + refresh-token rotation pipeline, the fine-grained permission model (permission claims + a policy provider, ... |
|
|
110
|
+
| [openfga/openfga](https://github.com/openfga/openfga) | 5451 | Apache-2.0 | go | professional | Google Zanzibar-style relationship-based authorization, and the modern answer for anything with sharing, nesting or inherited permissions. Borrow `docker-compose.yaml` (server + Postgres + playground) as the local dev layer, the ... |
|
|
111
|
+
| [openiddict/openiddict-core](https://github.com/openiddict/openiddict-core) | 5199 | Apache-2.0 | dotnet | professional | The free OAuth 2.0 / OIDC stack for .NET, and the natural companion to ASP.NET Core Identity. `src/` splits cleanly into layers a template can select independently: `OpenIddict.Server` + `.Server.AspNetCore` (issue tokens), ... |
|
|
112
|
+
| [panva/node-oidc-provider](https://github.com/panva/node-oidc-provider) | 3775 | MIT | node | standard | OpenID Certified™ authorization server you can embed in a Node app — the right answer when the template needs to *issue* tokens rather than consume them. `example/` ships three deployment shapes to lift directly: Koa-embedded, ... |
|
|
113
|
+
| [supabase/auth](https://github.com/supabase/auth) | 2498 | MIT | go | standard | The self-hostable auth server behind Supabase, and the only credible way to get Supabase-shaped auth without the SaaS. Borrow `migrations/` (the `auth` schema: users, identities, sessions, refresh_tokens, mfa_factors — a ... |
|
|
114
|
+
| [MasterKale/SimpleWebAuthn](https://github.com/MasterKale/SimpleWebAuthn) | 2286 | MIT | typescript | simple | The cleanest reference for passkeys as a standalone concern. Two packages: `@simplewebauthn/server` (generateRegistrationOptions / verifyRegistrationResponse / generateAuthenticationOptions / verifyAuthenticationResponse) and ... |
|
|
115
|
+
|
|
116
|
+
### backend-api
|
|
117
|
+
|
|
118
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
119
|
+
|---|---:|---|---|---|---|
|
|
120
|
+
| [fastapi/fastapi](https://github.com/fastapi/fastapi) | 100631 | MIT | python | simple | `docs_src/` is an underused asset: several hundred tiny, individually runnable, MIT example apps, each isolating exactly one concern, which is close to a ready-made layer library. Confirmed useful anchors are ... |
|
|
121
|
+
| [realworld-apps/realworld](https://github.com/realworld-apps/realworld) | 83859 | MIT | polyglot | standard | Not a starter — a fixed specification plus an index of implementations of the same medium-clone API across roughly every backend stack. Its value to a scaffolder is calibration and testing, and that value is high. Borrow the API ... |
|
|
122
|
+
| [nestjs/nest](https://github.com/nestjs/nest) | 76141 | MIT | typescript | standard | The `sample/` directory is the real prize — 30+ numbered, independently runnable, MIT-licensed mini-applications that map almost one-to-one onto scaffolder layers. Confirmed present and directly adaptable: `sample/01-cats-app` ... |
|
|
123
|
+
| [expressjs/express](https://github.com/expressjs/express) | 69223 | MIT | nodejs | simple | Value here is entirely in `examples/`, which is a set of small, self-contained, MIT apps that read like reference templates. Three are worth adapting directly and were confirmed present: `examples/mvc/index.js` (a ... |
|
|
124
|
+
| [honojs/hono](https://github.com/honojs/hono) | 31392 | MIT | typescript | simple | The smallest credible modern TS API surface — a Hono app is a single `src/index.ts` exporting `app`, which makes it the ideal "simple" rung and the one template that deploys unchanged to Node, Bun, Deno, Cloudflare Workers, and ... |
|
|
125
|
+
| [ardalis/CleanArchitecture](https://github.com/ardalis/CleanArchitecture) | 18343 | MIT | dotnet | professional | The most disciplined .NET clean-architecture reference and the better of the two for DDD-shaped domains. Verified anchors: `src/Clean.Architecture.Core/ContributorAggregate/ Contributor.cs`, ... |
|
|
126
|
+
| [dotnet/eShop](https://github.com/dotnet/eShop) | 10687 | MIT | dotnet | enterprise | Microsoft's own current reference application and the best available model of what a serious multi-service .NET system looks like in 2026. Verified anchors: `src/eShop.AppHost/Program.cs`, `src/Catalog.API/Program.cs`, root ... |
|
|
127
|
+
| [litestar-org/litestar](https://github.com/litestar-org/litestar) | 8342 | MIT | python | standard | The strongest argument for a second Python rung, because it supplies natively the pieces every FastAPI template hand-rolls. Borrow the layered-parameters model: dependencies, guards, and middleware declared at app / router / ... |
|
|
128
|
+
| [evrone/go-clean-template](https://github.com/evrone/go-clean-template) | 7633 | MIT | go | professional | The most production-shaped Go template in this list and the most actively maintained (pushed today). Verified anchors: `cmd/app/main.go`, `internal/app/app.go`, `pkg/httpserver/server.go`, `Makefile`, `docker-compose.yml`. The ... |
|
|
129
|
+
| [amitshekhariitbhu/go-backend-clean-architecture](https://github.com/amitshekhariitbhu/go-backend-clean-architecture) | 6120 | Apache-2.0 | go | standard | The clearest small Go clean-architecture layout of the current crop, and every layer is one obvious directory, which is exactly what a scaffolder wants to add or omit. Verified structure: `domain/` holds both entities and the ... |
|
|
130
|
+
| [goravel/goravel](https://github.com/goravel/goravel) | 4789 | MIT | go | professional | A genuinely different point in the design space: a Laravel-shaped, batteries-included Go application skeleton rather than a bare layout. Confirmed to be the skeleton and not the framework core — `go.mod` declares `module goravel` ... |
|
|
131
|
+
|
|
132
|
+
### backend-api, database-orm
|
|
133
|
+
|
|
134
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
135
|
+
|---|---:|---|---|---|---|
|
|
136
|
+
| [fastapi/full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template) | 44304 | MIT | python | professional | The official, actively maintained Python reference and the highest-signal source in this category. Verified layout: `backend/app/main.py`, `backend/app/api/deps.py`, `backend/app/core/config.py`, `backend/app/core/security.py`, ... |
|
|
137
|
+
| [jasontaylordev/CleanArchitecture](https://github.com/jasontaylordev/CleanArchitecture) | 20343 | MIT | dotnet | professional | The pragmatic counterpart to Ardalis and the better default for most .NET teams, largely because it ships as a real `dotnet new ca-sln` template — so it is already proof that this architecture can be parameterized, which is ... |
|
|
138
|
+
| [brocoders/nestjs-boilerplate](https://github.com/brocoders/nestjs-boilerplate) | 4348 | MIT | typescript | professional | The most complete NestJS starter still under active maintenance, and unusually well-suited to a layering tool because it was built to be database-agnostic. Verified anchors: `src/main.ts`, `src/auth/auth.service.ts`, ... |
|
|
139
|
+
|
|
140
|
+
### backend-api, observability
|
|
141
|
+
|
|
142
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
143
|
+
|---|---:|---|---|---|---|
|
|
144
|
+
| [microsoft/aspire](https://github.com/microsoft/aspire) | 6172 | MIT | dotnet | enterprise | Not an API template — the orchestration and local-dev layer that a .NET (and increasingly polyglot) template should sit on, pushed today and evolving fast. Borrow the AppHost model: infrastructure declared as typed C# ... |
|
|
145
|
+
|
|
146
|
+
### cms-ecommerce
|
|
147
|
+
|
|
148
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
149
|
+
|---|---:|---|---|---|---|
|
|
150
|
+
| [TryGhost/Ghost](https://github.com/TryGhost/Ghost) | 54465 | MIT | Node, Express, Knex, MySQL/SQLite, Ember admin, Handlebars ... | professional | Ghost is the most battle-tested MIT publishing platform here and its value for Groundplan is the *subsystems*, not the monolith. Borrow the members/subscriptions implementation — magic-link email auth with no passwords, tiers, ... |
|
|
151
|
+
| [payloadcms/payload](https://github.com/payloadcms/payload) | 43666 | MIT | TypeScript, Next.js 15, Drizzle/Mongoose, React admin | professional | The `templates/` directory of the monorepo is the single most directly harvestable asset in this whole category — verified to contain `blank`, `website`, `ecommerce`, `plugin`, `with-postgres`, `with-vercel-postgres`, ... |
|
|
152
|
+
| [saleor/saleor](https://github.com/saleor/saleor) | 23109 | BSD-3-Clause | Python, Django, GraphQL (Graphene), Postgres, Celery | enterprise | The enterprise rung of the ladder and the only serious non-JavaScript option here, which is worth keeping for stack diversity. BSD-3-Clause is cleanly vendorable provided you carry the copyright notice. Borrow the GraphQL-first ... |
|
|
153
|
+
| [vercel/commerce](https://github.com/vercel/commerce) | 14155 | MIT | TypeScript, Next.js App Router, Tailwind, Shopify ... | simple | The cleanest small reference storefront in the category and the best `simple` commerce rung. Everything backend-facing is confined to `lib/shopify/` (a typed fetch wrapper, GraphQL fragments and normalising mappers), so the swap ... |
|
|
154
|
+
| [keystonejs/keystone](https://github.com/keystonejs/keystone) | 9920 | MIT | TypeScript, Node, Prisma, GraphQL, React admin | standard | The `list()`/`field` schema DSL that emits a full CRUD GraphQL API plus an admin UI from one declaration — the tightest schema-to-API mapping among the MIT-licensed options. Borrow the access-control model specifically: `access: ... |
|
|
155
|
+
| [sanity-io/sanity](https://github.com/sanity-io/sanity) | 6218 | MIT | TypeScript, React, Sanity Studio v4 | professional | Schema-definition ergonomics: `defineType`/`defineField`/`defineArrayMember` give fully typed content models with autocomplete, and are worth copying as a pattern even for a non-Sanity CMS layer. The Studio's `sanity.config.ts` ... |
|
|
156
|
+
| [nuxt/content](https://github.com/nuxt/content) | 3652 | MIT | TypeScript, Nuxt 3/4, Vue, SQLite/D1 | simple | The file-based-content answer for the Vue half of the ladder, and the natural counterpart to Keystatic in a framework-diverse catalog. Borrow the `content.config.ts` collection schema (Zod-validated frontmatter — invalid ... |
|
|
157
|
+
| [Thinkmill/keystatic](https://github.com/Thinkmill/keystatic) | 2221 | MIT | TypeScript, React, Markdoc/MDX, Git-backed storage | simple | The best `simple` tier entry in this category. `keystatic.config.ts` defines collections and singletons in ~40 lines and the entire content store is Markdown/JSON files in the repo — no database, no migrations, no running ... |
|
|
158
|
+
| [Shopify/hydrogen](https://github.com/Shopify/hydrogen) | 2065 | MIT | TypeScript, React Router 7 (ex-Remix), Vite, Oxygen edge ... | standard | `templates/skeleton/` is a verified, deliberately minimal starter (confirmed present, along with `templates/skeleton/app/lib/context.ts`) and is exactly the shape a scaffolding tool wants — Shopify maintains it as the `npm create ... |
|
|
159
|
+
| [saleor/saleor-dashboard](https://github.com/saleor/saleor-dashboard) | 1014 | BSD-3-Clause | TypeScript, React, Apollo Client, Vite, MacawUI | enterprise | A production admin console for a complex domain, useful as a reference for any enterprise-tier admin layer regardless of backend. Borrow the saved-views/filter-preset pattern (complex list filters serialised into the URL so views ... |
|
|
160
|
+
|
|
161
|
+
### cms-ecommerce, payments-billing
|
|
162
|
+
|
|
163
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
164
|
+
|---|---:|---|---|---|---|
|
|
165
|
+
| [medusajs/medusa](https://github.com/medusajs/medusa) | 35221 | MIT | TypeScript, Node, Postgres, MikroORM, React admin | professional | The strongest genuinely-MIT commerce backend available — no dual-license asterisk, which after Vendure's GPL move and Directus's MSCL move makes it the default pick for a vendorable commerce layer. Verified package layout is ... |
|
|
166
|
+
|
|
167
|
+
### data-engineering
|
|
168
|
+
|
|
169
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
170
|
+
|---|---:|---|---|---|---|
|
|
171
|
+
| [apache/airflow](https://github.com/apache/airflow) | 46168 | Apache-2.0 | python | enterprise | The default answer in regulated and large environments — worth a layer for institutional reasons even where Dagster or Prefect is technically nicer, because it is what audit and platform teams already accept. Borrow the ... |
|
|
172
|
+
| [pola-rs/polars](https://github.com/pola-rs/polars) | 39041 | MIT | rust, python | standard | The DataFrame engine for the transform step when the work is genuinely Python rather than SQL. LICENSE was read in full: it is MIT text (Copyright Ritchie Vink, with an NVIDIA portions notice), despite the repo's size making ... |
|
|
173
|
+
| [dagster-io/dagster](https://github.com/dagster-io/dagster) | 15860 | Apache-2.0 | python | professional | Asset-centric orchestration — you declare the tables that should exist and the graph is derived, which is a materially better fit for template generation than declaring tasks. examples/ is the richest per-topic starter collection ... |
|
|
174
|
+
| [debezium/debezium](https://github.com/debezium/debezium) | 12929 | Apache-2.0 | java, kafka | enterprise | The reference implementation of log-based CDC, and the source of the change-event envelope that most of the ecosystem has standardised on: before / after / source / op / ts_ms. Borrow that envelope shape for any ... |
|
|
175
|
+
| [fivetran/great_expectations](https://github.com/fivetran/great_expectations) | 11653 | Apache-2.0 | python | enterprise | The most complete standalone data-validation vocabulary — the right choice when validation must cover sources dbt never sees (files landing in object storage, API payloads, a pre-load staging area). Borrow the four-object model: ... |
|
|
176
|
+
| [dlt-hub/dlt](https://github.com/dlt-hub/dlt) | 5629 | Apache-2.0 | python | standard | Schema evolution and incremental loading as library code rather than platform features — the missing ingestion half that jaffle_shop_duckdb has no answer for. docs/examples/ is an unusually large, runnable pattern library ... |
|
|
177
|
+
| [delta-io/delta-rs](https://github.com/delta-io/delta-rs) | 3263 | Apache-2.0 | rust, python | standard | ACID table semantics without a cluster — the storage half of a bronze/silver/gold layer. Verified python/deltalake/ modules: table.py (DeltaTable — the read/write/history/vacuum surface), transaction.py (the commit protocol, ... |
|
|
178
|
+
| [SQLMesh/sqlmesh](https://github.com/SQLMesh/sqlmesh) | 3204 | Apache-2.0 | python, sql | professional | The strongest available answer to the problem dbt leaves open — knowing what a SQL change actually breaks before it runs. Borrow the plan/apply workflow (column-level lineage diffing a change against the deployed state, then ... |
|
|
179
|
+
| [elementary-data/elementary](https://github.com/elementary-data/elementary) | 2379 | Apache-2.0 | python, dbt, sql, jinja | standard | The data-observability layer that rides on dbt artifacts instead of a separate agent — the cheapest credible way to give a generated project anomaly detection and alerting. The whole mechanism is a dbt package inside the repo: ... |
|
|
180
|
+
| [dbt-labs/dbt-utils](https://github.com/dbt-labs/dbt-utils) | 1779 | Apache-2.0 | dbt, sql, jinja | simple | The generic-test vocabulary that every serious dbt project depends on, and the single highest-leverage dependency to pin in a data-dbt layer. Borrow the packages.yml dependency block and the schema.yml test idioms it unlocks: ... |
|
|
181
|
+
| [duckdb/dbt-duckdb](https://github.com/duckdb/dbt-duckdb) | 1317 | Apache-2.0 | python, dbt, duckdb, sql | standard | The adapter that makes a credential-free dbt layer viable, plus the clearest worked examples of DuckDB-as-lakehouse. The functional test suite doubles as a spec — verified files under tests/functional/adapter/: test_external.py ... |
|
|
182
|
+
| [astronomer/astronomer-cosmos](https://github.com/astronomer/astronomer-cosmos) | 1232 | Apache-2.0 | python, airflow, dbt | professional | It parses a dbt project and expands each model into its own Airflow task, so failures are per-model instead of one opaque "dbt run failed" — that expansion is the pattern worth taking. The genuinely reusable asset is ... |
|
|
183
|
+
| [apache/iceberg-python](https://github.com/apache/iceberg-python) | 1097 | Apache-2.0 | python | professional | The catalog abstraction, which is the part of Iceberg that actually determines whether a template is portable. Verified pyiceberg/catalog/ modules: sql.py, hive.py, glue.py, dynamodb.py, bigquery_metastore.py, memory.py, noop.py ... |
|
|
184
|
+
| [dbt-labs/dbt-project-evaluator](https://github.com/dbt-labs/dbt-project-evaluator) | 567 | Apache-2.0 | dbt, sql, jinja | standard | dbt Labs' own executable opinion about what a well-formed dbt project looks like — it reads the manifest and flags violations, which is exactly the rule set a Groundplan dbt layer should be generated to satisfy from the start. ... |
|
|
185
|
+
| [dbt-labs/jaffle_shop_duckdb](https://github.com/dbt-labs/jaffle_shop_duckdb) | 280 | Apache-2.0 | dbt, duckdb, sql, python | simple | The smallest complete dbt project that actually runs, and the correct simple-tier base. Note the default branch is `duckdb`, not main/master. Verified tree (36 files): dbt_project.yml, profiles.yml checked into the repo root ... |
|
|
186
|
+
|
|
187
|
+
### database-orm
|
|
188
|
+
|
|
189
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
190
|
+
|---|---:|---|---|---|---|
|
|
191
|
+
| [gorm](https://github.com/go-gorm/gorm) | 39872 | MIT | go | standard | The full-ORM counterweight to sqlc for Go, and the broader dialect set: separate driver packages for postgres, mysql, sqlite and sqlserver behind one gorm.Open call. Borrow the gorm.Model embedded struct ... |
|
|
192
|
+
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | 35183 | Apache-2.0 | typescript | standard | The single richest source of DB-choice breadth in the category. Verified driver modules under drizzle-orm/src/: node-postgres, postgres-js, neon-http, neon-serverless, planetscale-serverless, d1, libsql, supabase, ... |
|
|
193
|
+
| [Dapper](https://github.com/DapperLib/Dapper) | 18353 | Apache-2.0 | dotnet | simple | The .NET micro-ORM tier: extension methods over IDbConnection, so it works against SQL Server, Postgres, MySQL and SQLite with the same code and no model layer. Borrow the Query/Execute call shape, the multi-mapping (splitOn) ... |
|
|
194
|
+
| [sqlc](https://github.com/sqlc-dev/sqlc) | 18029 | MIT | go | standard | The SQL-first inversion of the ORM: you write .sql, it generates type-safe Go. Borrow the sqlc.yaml config shape (engine + sql_package selection — pgx/v5 vs database/sql is a single field, which maps cleanly onto a Groundplan ... |
|
|
195
|
+
| [ioredis](https://github.com/redis/ioredis) | 15311 | MIT | typescript | simple | Redis coverage with a permissive license, which the Redis server itself no longer offers. Borrow the connection-options and retryStrategy/reconnectOnError config shape, the Cluster and Sentinel constructor patterns for the HA ... |
|
|
196
|
+
| [kysely](https://github.com/kysely-org/kysely) | 14058 | MIT | typescript | simple | The strip-down option for the bottom of the complexity ladder: a typed SQL query builder with no codegen step, no CLI, no runtime engine — types come from a hand-written or introspected Database interface. Borrow the Dialect ... |
|
|
197
|
+
| [atlas](https://github.com/ariga/atlas) | 8586 | Apache-2.0 | go | professional | The language-agnostic, declarative migration layer: you declare desired schema (HCL or plain SQL) and Atlas plans the diff, which suits a scaffolding tool better than per-ORM migration CLIs. Borrow the atlas.hcl env/config ... |
|
|
198
|
+
| [prisma-examples](https://github.com/prisma/prisma-examples) | 6647 | Apache-2.0 | typescript | standard | Official, ready-to-run, per-database example projects — the closest thing in this category to pre-built Groundplan layers. Verified subdirectories under databases/: cockroachdb, mongodb, sql-server, turso, postgresql-supabase, ... |
|
|
199
|
+
| [alembic](https://github.com/sqlalchemy/alembic) | 4263 | MIT | python | standard | The migration engine both Python templates above depend on, from the SQLAlchemy org. Borrow its env.py templates (it ships generic, async and multidb variants — the multidb template is directly relevant to a multi-database ... |
|
|
200
|
+
| [cloudflare-templates](https://github.com/cloudflare/templates) | 2023 | MIT | typescript | standard | First-party, MIT-licensed coverage of the serverless/edge DB tier. Verified templates: d1-template/ (wrangler.json with the D1 binding, migrations/0001_create_comments_table.sql, src/index.ts) and ... |
|
|
201
|
+
| [minimal-fastapi-postgres-template](https://github.com/rafsaf/minimal-fastapi-postgres-template) | 572 | MIT | python | simple | The readable, strip-down counterpart to the official FastAPI template — 52 files total, which is small enough to audit line by line before vendoring. Verified layout: app/core/database_session.py (async engine + session factory), ... |
|
|
202
|
+
|
|
203
|
+
### database-orm, fullstack-saas
|
|
204
|
+
|
|
205
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
206
|
+
|---|---:|---|---|---|---|
|
|
207
|
+
| [supabase](https://github.com/supabase/supabase) | 106527 | Apache-2.0 | postgres | enterprise | A complete, self-hostable Postgres platform, and a strong reference for composable infrastructure. Verified under docker/: docker-compose.yml plus overlay files docker-compose.pg15.yml, docker-compose.pg17.yml, ... |
|
|
208
|
+
|
|
209
|
+
### devops-cicd
|
|
210
|
+
|
|
211
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
212
|
+
|---|---:|---|---|---|---|
|
|
213
|
+
| [docker/awesome-compose](https://github.com/docker/awesome-compose) | 45865 | CC0-1.0 | docker-compose, multi-language | simple | A large bank of working, minimal compose stacks to adapt per language layer. react-express-mysql/compose.yaml and nginx-golang-postgres/compose.yaml are clean references for service wiring, depends_on with healthchecks, and ... |
|
|
214
|
+
| [goreleaser/goreleaser](https://github.com/goreleaser/goreleaser) | 15948 | MIT | go, github-actions, release | professional | Its own dogfooded config is the artifact worth taking: .goreleaser.yaml covers cross-platform build matrices, archive/checksum/SBOM generation, container manifests and changelog grouping in one declarative file. ... |
|
|
215
|
+
| [actions/starter-workflows](https://github.com/actions/starter-workflows) | 11850 | MIT | github-actions, yaml | standard | GitHub's own baseline workflows — the safest default CI layer to generate from. ci/node.js.yml (matrix strategy over node-version + cache), ci/python-app.yml, ci/go.yml, ci/docker-image.yml and ci/docker-publish.yml (buildx + ... |
|
|
216
|
+
| [cachix/devenv](https://github.com/cachix/devenv) | 7144 | Apache-2.0 | nix, devenv | professional | The most approachable Nix-based reproducible dev environment. Root devenv.nix and flake.nix show the entry-point pair; examples/rust/devenv.nix is a concise per-language environment (toolchain pin, packages, scripts, enterShell ... |
|
|
217
|
+
| [stefanprodan/podinfo](https://github.com/stefanprodan/podinfo) | 5951 | Apache-2.0 | kubernetes, helm, kustomize, go | standard | The reference app for Kubernetes delivery patterns, and unusually complete for its size. charts/podinfo/ is a well-formed Helm chart (values.yaml is a good schema model, templates/hpa.yaml a clean autoscaler); ... |
|
|
218
|
+
| [terraform-aws-modules/terraform-aws-eks](https://github.com/terraform-aws-modules/terraform-aws-eks) | 4985 | Apache-2.0 | terraform, aws, kubernetes | professional | The standard way to stand up EKS in Terraform. modules/eks-managed-node-group/main.tf is a strong sub-module encapsulation example (how to split a large module into composable children), and examples/karpenter/main.tf is a ... |
|
|
219
|
+
| [antonbabenko/pre-commit-terraform](https://github.com/antonbabenko/pre-commit-terraform) | 3746 | MIT | pre-commit, terraform, bash | standard | Drop-in quality gate for any IaC repo. .pre-commit-hooks.yaml is the hook manifest to adapt, and hooks/terraform_fmt.sh shows the wrapper convention (arg passing, file filtering, per-directory invocation) used across every hook. ... |
|
|
220
|
+
| [terraform-aws-modules/terraform-aws-vpc](https://github.com/terraform-aws-modules/terraform-aws-vpc) | 3249 | Apache-2.0 | terraform, aws | standard | The de-facto model for how a Terraform module should be laid out: main.tf / variables.tf / outputs.tf / versions.tf separation with required_providers version constraints pinned in versions.tf. examples/complete/main.tf is the ... |
|
|
221
|
+
| [aws-ia/terraform-aws-eks-blueprints](https://github.com/aws-ia/terraform-aws-eks-blueprints) | 3027 | Apache-2.0 | terraform, aws, kubernetes | enterprise | AWS-maintained reference architectures rather than a module. patterns/karpenter/main.tf and patterns/blue-green-upgrade/README.md are the standouts — the blue/green cluster upgrade pattern is genuinely hard-won operational ... |
|
|
222
|
+
| [devcontainers/features](https://github.com/devcontainers/features) | 1503 | MIT | devcontainer, bash, oci | standard | The best real-world model of a composable layer system. src/docker-in-docker/devcontainer-feature.json declares options + installsAfter ordering; src/node/install.sh is a disciplined idempotent installer (detects distro, pins ... |
|
|
223
|
+
| [devcontainers/templates](https://github.com/devcontainers/templates) | 1420 | MIT | devcontainer, docker, json | simple | The canonical devcontainer-template shape. src/typescript-node/.devcontainer/devcontainer.json and src/python/.devcontainer/devcontainer.json are minimal, strip-down-ready bases. src/go/devcontainer-template.json shows the ... |
|
|
224
|
+
| [fluxcd/flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example) | 1280 | Apache-2.0 | kubernetes, flux, kustomize, helm, gitops | professional | The canonical GitOps monorepo layout, and the single most directly reusable directory structure in this category: clusters/staging/ and clusters/production/ hold per-cluster entrypoints (infrastructure.yaml, apps.yaml) that point ... |
|
|
225
|
+
| [nickjj/docker-rails-example](https://github.com/nickjj/docker-rails-example) | 1077 | MIT | docker, rails, github-actions | simple | The single best small-repo example of a production-shaped container setup. The Dockerfile is a genuine multi-stage build with a non-root user and cached dependency layers; compose.yaml uses profiles and healthchecks; the `run` ... |
|
|
226
|
+
|
|
227
|
+
### devops-cicd, observability
|
|
228
|
+
|
|
229
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
230
|
+
|---|---:|---|---|---|---|
|
|
231
|
+
| [prometheus-operator/kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) | 7695 | Apache-2.0 | kubernetes, prometheus, grafana, jsonnet | enterprise | The end-to-end cluster monitoring stack. manifests/ holds ~100 pre-rendered YAML files (manifests/prometheus-prometheus.yaml et al) that can be vendored directly with no jsonnet toolchain at all — that is the pragmatic path. ... |
|
|
232
|
+
|
|
233
|
+
### devops-cicd, security-compliance
|
|
234
|
+
|
|
235
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
236
|
+
|---|---:|---|---|---|---|
|
|
237
|
+
| [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) | 587 | Apache-2.0 | github-actions, supply-chain, sigstore | enterprise | Build provenance for regulated contexts. .github/workflows/generator_generic_slsa3.yml is a reusable workflow you call with `uses:` to emit signed SLSA level 3 provenance for arbitrary artifacts; ... |
|
|
238
|
+
|
|
239
|
+
### frontend-ui
|
|
240
|
+
|
|
241
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
242
|
+
|---|---:|---|---|---|---|
|
|
243
|
+
| [shadcn-ui/ui](https://github.com/shadcn-ui/ui) | 119258 | MIT | react, next, typescript, tailwind, radix | standard | The single most important source in this category, and structurally the closest thing to Groundplan's own model: components are copied into the consumer repo, not installed. PATHS VERIFIED 2026-07-18 — the monorepo has moved to ... |
|
|
244
|
+
| [storybookjs/storybook](https://github.com/storybookjs/storybook) | 90616 | MIT | react, vue, svelte, angular, vite, typescript | professional | The workbench layer that turns a pile of components into a maintained design system — this is a config pattern to generate, not code to copy. Borrow the .storybook/main.ts + preview.ts setup (framework preset, autodocs, a global ... |
|
|
245
|
+
| [react-hook-form/react-hook-form](https://github.com/react-hook-form/react-hook-form) | 44800 | MIT | react, typescript | standard | The default form layer for a generated React template. Borrow the uncontrolled/ref-registration model (re-renders only the fields that change, which is why it outperforms Formik on large forms), the @hookform/resolvers zod bridge ... |
|
|
246
|
+
| [ant-design/ant-design-pro](https://github.com/ant-design/ant-design-pro) | 38561 | MIT | react, typescript, umi, antd, less | enterprise | The reference for large-org admin conventions, battle-tested inside Alipay and widely deployed across enterprise China. Borrow the ProLayout shell (config-driven menu tree, multi-tab navigation, breadcrumb generation from route ... |
|
|
247
|
+
| [refinedev/refine](https://github.com/refinedev/refine) | 35333 | MIT | react, typescript, next, remix, vite, antd, mui, chakra, ... | enterprise | The best MIT-licensed answer for large internal-tool and admin estates, because it is headless at the architecture level rather than the component level. Borrow the dataProvider contract (getList/getOne/create/update/ ... |
|
|
248
|
+
| [tailwindlabs/headlessui](https://github.com/tailwindlabs/headlessui) | 28673 | MIT | react, vue, typescript, tailwind | simple | The cleanest reference for accessible interaction primitives with zero styling opinions. Borrow the focus-management and keyboard-nav internals under packages/@headlessui-react/src/components/ — Dialog (focus trap + scroll lock + ... |
|
|
249
|
+
| [TanStack/table](https://github.com/TanStack/table) | 28198 | MIT | react, vue, svelte, solid, typescript | standard | Headless table logic, which is the right split for a scaffolder: the state machine is generic and the markup stays yours. Borrow the columnDef / createColumnHelper typing pattern, and the pluggable row-model composition ... |
|
|
250
|
+
| [recharts/recharts](https://github.com/recharts/recharts) | 27383 | MIT | react, typescript, d3, svg | simple | The lowest-friction charting layer to scaffold — declarative JSX composition (<LineChart><XAxis/><Tooltip/></LineChart>) means a generated template needs no imperative chart-init code. Borrow the ResponsiveContainer pattern for ... |
|
|
251
|
+
| [airbnb/visx](https://github.com/airbnb/visx) | 20961 | MIT | react, typescript, d3, svg | professional | The right layer when Recharts' abstraction is too rigid — unopinionated React wrappers over d3 with no chart components imposed. Borrow the granular package split (@visx/scale, @visx/axis, @visx/shape, @visx/tooltip, ... |
|
|
252
|
+
| [radix-ui/primitives](https://github.com/radix-ui/primitives) | 19073 | MIT | react, typescript | standard | The accessibility substrate under shadcn/ui, and worth understanding directly rather than only through it. Borrow the compound-component contract (Root/Trigger/Portal/Content/Item) which is the de-facto API shape for headless ... |
|
|
253
|
+
| [satnaing/shadcn-admin](https://github.com/satnaing/shadcn-admin) | 12662 | MIT | react, vite, typescript, tailwind, shadcn, tanstack-router | standard | The best-proportioned shadcn admin reference — genuinely complete without being a framework. Borrow the whole application shell: src/components/layout/ (collapsible sidebar with persisted state, breadcrumb header, nav-user menu), ... |
|
|
254
|
+
| [mui/base-ui](https://github.com/mui/base-ui) | 10373 | MIT | react, typescript | professional | The current-generation headless primitive library, built by the MUI team together with people who worked on Radix and Floating UI — the most credible forward-looking alternative to Radix. Borrow its render-prop composition API (a ... |
|
|
255
|
+
| [tremorlabs/tremor](https://github.com/tremorlabs/tremor) | 3525 | Apache-2.0 | react, typescript, tailwind, radix, recharts | professional | Dashboard-specific composites that the general component libraries do not cover: KPI/stat cards, delta badges, spark charts, category bars, progress circles, and date-range pickers, all Tailwind-native and copy-pasteable in the ... |
|
|
256
|
+
|
|
257
|
+
### frontend-ui, fullstack-saas
|
|
258
|
+
|
|
259
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
260
|
+
|---|---:|---|---|---|---|
|
|
261
|
+
| [ixartz/Next-js-Boilerplate](https://github.com/ixartz/Next-js-Boilerplate) | 13023 | MIT | next, react, typescript, tailwind, drizzle, playwright, ... | professional | The strongest reference for the non-UI scaffolding that surrounds a UI template — the tooling spine most component-focused repos skip. Borrow the full quality gate: oxlint config (oxlint.config.ts), Vitest unit setup, Playwright ... |
|
|
262
|
+
| [Kiranism/next-shadcn-dashboard-starter](https://github.com/Kiranism/next-shadcn-dashboard-starter) | 6689 | MIT | next, react, typescript, tailwind, shadcn, clerk, zustand | standard | The Next.js App Router counterpart to shadcn-admin, and the most actively maintained template in this list (committed the day of research). Borrow the app/ route-group layout split (auth pages vs dashboard shell), the ... |
|
|
263
|
+
|
|
264
|
+
### fullstack-saas
|
|
265
|
+
|
|
266
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
267
|
+
|---|---:|---|---|---|---|
|
|
268
|
+
| [calcom/cal.diy](https://github.com/calcom/cal.diy) | 46574 | MIT | Turborepo monorepo + Next.js + Prisma/Postgres + tRPC + ... | enterprise | A community MIT fork of Cal.com with all enterprise/commercial code removed — verified MIT at raw LICENSE, and verified as the redirect target of the old cal.com URL. Rare in being a genuine production-scale codebase that is ... |
|
|
269
|
+
| [alan2207/bulletproof-react](https://github.com/alan2207/bulletproof-react) | 35562 | MIT | Architecture guide + reference apps (Next.js App Router, ... | professional | Not a SaaS kit — the architecture rulebook that should govern how Groundplan lays out every React template. Borrow the feature-sliced directory convention (src/features/<name>/ {api,components,hooks,stores,types}), the "no ... |
|
|
270
|
+
| [t3-oss/create-t3-app](https://github.com/t3-oss/create-t3-app) | 29048 | MIT | CLI scaffolder — Next.js + TypeScript + tRPC + ... | standard | Uniquely valuable to Groundplan because it is itself a scaffolder: read cli/src/installers/* to see how composable, independently-selectable layers are modelled and applied — each installer declares its own deps, files and ... |
|
|
271
|
+
| [vercel/nextjs-subscription-payments](https://github.com/vercel/nextjs-subscription-payments) | 7722 | MIT | Next.js App Router + Supabase (auth + Postgres + RLS) + ... | standard | ARCHIVED but still the canonical reference for Stripe<->database subscription state sync, which is the single most error-prone part of a SaaS build. Borrow supabase/migrations/*.sql (products/prices/subscriptions tables mirroring ... |
|
|
272
|
+
| [Blazity/next-enterprise](https://github.com/Blazity/next-enterprise) | 7428 | MIT | Next.js + OpenTelemetry/@vercel/otel + Storybook + ... | enterprise | The governance and release-engineering layer, which no other entry here covers properly. Borrow the OpenTelemetry setup (@opentelemetry/sdk-node + @vercel/otel instrumentation.ts) as a vendor-neutral observability layer, the ... |
|
|
273
|
+
| [ixartz/SaaS-Boilerplate](https://github.com/ixartz/SaaS-Boilerplate) | 7291 | MIT | Next.js 15 + Drizzle + Clerk (orgs/roles) + Stripe + ... | professional | The most complete MIT-licensed SaaS boilerplate that is still actively maintained. Borrow the multi-tenant organization + role model built on Clerk Organizations, the Stripe subscription/plan configuration split (plans declared ... |
|
|
274
|
+
| [epicweb-dev/epic-stack](https://github.com/epicweb-dev/epic-stack) | 5542 | MIT | React Router v7 (ex-Remix) + Prisma/SQLite(LiteFS) + ... | professional | Kent C. Dodds' production stack and the strongest non-Next.js entry. It owns its auth instead of renting it: borrow the @simplewebauthn passkey registration/login flow, the @epic-web/totp 2FA implementation, the session + ... |
|
|
275
|
+
| [nextacular/nextacular](https://github.com/nextacular/nextacular) | 1376 | MIT | Next.js + Prisma/Postgres + NextAuth + Stripe + i18next + ... | standard | The clearest open reference for real multi-tenancy: borrow the workspace model (prisma/schema.prisma), the subdomain and custom-domain routing middleware, the workspace-scoped member/invitation flow with email invites, and the ... |
|
|
276
|
+
| [dotnize/react-tanstarter](https://github.com/dotnize/react-tanstarter) | 1259 | Unlicense | TanStack Start + TanStack Router/Query + Drizzle + Better ... | simple | The best minimal TanStack Start baseline, and the single most permissively licensed entry here (Unlicense = public domain, zero attribution burden — ideal for a generator that copies files). Borrow the src/routes file-based ... |
|
|
277
|
+
| [Skolaczk/next-starter](https://github.com/Skolaczk/next-starter) | 996 | MIT | Next.js 15 + Drizzle + NextAuth v5 + Stripe + next-intl + ... | simple | The cleanest small reference for "auth + db + payments" without monorepo weight. Borrow the @t3-oss/env-nextjs env schema (src/env.mjs) as the canonical typed-config entry point, the @auth/drizzle-adapter wiring, the next-intl ... |
|
|
278
|
+
| [CarlosZiegler/fullstack-start-template](https://github.com/CarlosZiegler/fullstack-start-template) | 290 | MIT | TanStack Start + Better Auth + Drizzle/Neon + tRPC-ish ... | standard | The "batteries included" counterpart to react-tanstarter, and the most complete TanStack Start SaaS wiring found. Borrow the auth:generate script (generates the Better Auth schema into Drizzle — a clean codegen contract for an ... |
|
|
279
|
+
|
|
280
|
+
### fullstack-saas, payments-billing
|
|
281
|
+
|
|
282
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
283
|
+
|---|---:|---|---|---|---|
|
|
284
|
+
| [nextjs/saas-starter](https://github.com/nextjs/saas-starter) | 15969 | MIT | Next.js 15 App Router + Postgres + Drizzle + Stripe + JWT ... | standard | The official Vercel SaaS starter and the highest-signal "sensible default" in the category. Borrow the db:setup / db:seed / db:generate / db:migrate / db:studio script quartet and the Drizzle schema+migration layout wholesale — ... |
|
|
285
|
+
|
|
286
|
+
### game-3d
|
|
287
|
+
|
|
288
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
289
|
+
|---|---:|---|---|---|---|
|
|
290
|
+
| [mrdoob/three.js](https://github.com/mrdoob/three.js) | 113825 | MIT | javascript, typescript, webgl, webgpu, glsl | enterprise | The substrate the majority of this category sits on, and the single richest pool of adaptable 3D code that exists under MIT. The `examples/jsm/` directory is the real asset: `controls/OrbitControls.js` and `TransformControls.js`, ... |
|
|
291
|
+
| [phaserjs/phaser](https://github.com/phaserjs/phaser) | 39980 | MIT | javascript, typescript, webgl, canvas | professional | The most battle-tested 2D web engine, with a decade of shipped commercial games behind it. For Groundplan, borrow the architecture rather than the source: the Scene lifecycle contract (`init` -> `preload` -> `create` -> `update`) ... |
|
|
292
|
+
| [pmndrs/react-three-fiber](https://github.com/pmndrs/react-three-fiber) | 31462 | MIT | typescript, react, three | standard | The default 3D stack for anyone already in React, and the reconciler most of this category's other entries orbit. The value for Groundplan is less the library source than the integration patterns: adapt the `<Canvas>` ... |
|
|
293
|
+
| [BabylonJS/Babylon.js](https://github.com/BabylonJS/Babylon.js) | 25825 | Apache-2.0 | typescript, webgl, webgpu, wasm | enterprise | The most batteries-included and most enterprise-appropriate 3D web engine — Microsoft-backed, TypeScript-native, and the only one here whose stability guarantees are strong enough for a long-lived internal product. Borrow the ... |
|
|
294
|
+
| [playcanvas/engine](https://github.com/playcanvas/engine) | 16258 | MIT | javascript, typescript, webgl, webgpu | professional | A full engine rather than a rendering library — the entity-component system, asset registry, input, audio and scene graph all ship together, which makes it the closest thing here to "Unity for the web" under an MIT license. ... |
|
|
295
|
+
| [pmndrs/drei](https://github.com/pmndrs/drei) | 9748 | MIT | typescript, react, three, r3f | standard | The helper library that turns bare R3F into something you can ship, and the richest single source of copyable 3D patterns in the ecosystem. Highest value for Groundplan layers: `<Environment preset="..." />` for one-line IBL ... |
|
|
296
|
+
| [godotengine/godot-demo-projects](https://github.com/godotengine/godot-demo-projects) | 9187 | MIT | gdscript, csharp, godot | standard | The official first-party demo collection and — importantly for this category — a permissively licensed one, which is exactly what Unity's equivalent is not. Each subdirectory is a self-contained project with its own ... |
|
|
297
|
+
| [MirrorNetworking/Mirror](https://github.com/MirrorNetworking/Mirror) | 6249 | MIT | csharp, unity | professional | The one genuinely vendorable Unity multiplayer stack — Unity's own first-party Netcode for GameObjects is Unity Companion License and therefore unusable as source material, which makes Mirror's MIT license the deciding factor ... |
|
|
298
|
+
| [tresjs/tres](https://github.com/tresjs/tres) | 3628 | MIT | typescript, vue, three | standard | The Vue equivalent, and the most actively developed of the three framework bindings listed here. Borrow the `<TresCanvas>` configuration and the convention that any Three.js class is available as `<TresMesh>`, ... |
|
|
299
|
+
| [threlte/threlte](https://github.com/threlte/threlte) | 3299 | MIT | typescript, svelte, three | standard | The Svelte answer to R3F, and the better choice when per-frame overhead matters — Svelte's compiled reactivity avoids the reconciliation cost that forces R3F code into ref-mutation workarounds. Take the `<Canvas>` + `<T.Mesh>` ... |
|
|
300
|
+
| [pmndrs/xr](https://github.com/pmndrs/xr) | 2600 | MIT | typescript, react, three, r3f, webxr | standard | The current WebXR layer for R3F (v6, a full rewrite of the older react-xr) and the only maintained permissive option for VR/AR templates. Adapt the `createXRStore()` + `<XR store={store}>` pattern — decoupling the XR session ... |
|
|
301
|
+
| [pmndrs/react-three-rapier](https://github.com/pmndrs/react-three-rapier) | 1412 | MIT | typescript, react, three, r3f, rapier, wasm | standard | The physics layer for R3F, and a good template for wrapping any WASM simulation in React. Take the `<Physics>` provider configuration (`gravity`, `timeStep="vary"` vs a fixed step, `interpolate`, and `paused` — a fixed timestep ... |
|
|
302
|
+
| [pmndrs/ecctrl](https://github.com/pmndrs/ecctrl) | 762 | MIT | typescript, react, three, r3f, rapier | simple | A single-concern library that solves the one problem every 3D project hits on day two: a character controller that does not feel bad. Borrow the floating-capsule approach in `src/character/Ecctrl.tsx` — a ray-cast down from a ... |
|
|
303
|
+
| [TheBevyFlock/bevy_new_2d](https://github.com/TheBevyFlock/bevy_new_2d) | 470 | MIT OR Apache-2.0 OR CC0-1.0 | rust, bevy | standard | The community-standard Bevy game template and the best available model for structuring a Rust ECS game, which is otherwise an unsolved question for newcomers. Take the `src/screens/` module split (splash -> loading -> title -> ... |
|
|
304
|
+
| [phaserjs/template-vite-ts](https://github.com/phaserjs/template-vite-ts) | 188 | MIT | typescript, phaser, vite | simple | The official Phaser starter and the cleanest strip-down baseline in the whole category — roughly a dozen files, no framework noise. Take `src/game/main.ts` (the `Phaser.Types.Core.GameConfig` object: type `AUTO`, fixed 1024x768 ... |
|
|
305
|
+
| [colyseus/create-colyseus-app](https://github.com/colyseus/create-colyseus-app) | 39 | MIT | typescript, node, colyseus | simple | The canonical minimal authoritative-server scaffold, and the single best shape to copy for any "multiplayer room" Groundplan layer. Take `templates/typescript/src/rooms/MyRoom.ts` (the `Room<MyRoomState>` subclass with ... |
|
|
306
|
+
|
|
307
|
+
### game-3d, realtime-messaging
|
|
308
|
+
|
|
309
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
310
|
+
|---|---:|---|---|---|---|
|
|
311
|
+
| [colyseus/colyseus](https://github.com/colyseus/colyseus) | 7097 | MIT | typescript, node, websocket | professional | The strongest permissive authoritative-multiplayer server in the JS ecosystem and the natural backend layer for every client engine in this file. Borrow the Schema system (`@colyseus/schema`) — decorated state classes that ... |
|
|
312
|
+
|
|
313
|
+
### mobile-desktop
|
|
314
|
+
|
|
315
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
316
|
+
|---|---:|---|---|---|---|
|
|
317
|
+
| [electron-react-boilerplate/electron-react-boilerplate](https://github.com/electron-react-boilerplate/electron-react-boilerplate) | 24254 | MIT | electron, react, typescript, webpack, electron-builder, jest | enterprise | The most battle-tested packaging and release configuration in the Electron ecosystem - a decade of accumulated fixes for code signing, notarization, auto-update and native-module rebuilds that are genuinely hard to reproduce. ... |
|
|
318
|
+
| [infinitered/ignite](https://github.com/infinitered/ignite) | 19890 | MIT | react-native, expo, typescript, react-navigation, mmkv, ... | professional | The whole `boilerplate/` tree is the payload. Highest-value pieces: `boilerplate/app/config/` split into config.base.ts / config.dev.ts / config.prod.ts with an index.ts that picks by __DEV__ - a clean environment-layer contract ... |
|
|
319
|
+
| [flutter/samples](https://github.com/flutter/samples) | 19210 | BSD-3-Clause | flutter, dart, material 3, various state solutions | simple | First-party and continuously updated against current Flutter stable, which makes it the safest source for baseline files a scaffolder emits: current pubspec.yaml shape, analysis_options.yaml, platform runner directories (android/ ... |
|
|
320
|
+
| [Nozbe/WatermelonDB](https://github.com/Nozbe/WatermelonDB) | 11751 | MIT | react-native, sqlite, typescript, lokijs (web) | professional | The reference implementation of offline-first sync for React Native, and the sync protocol is the real asset. Borrow its pull/push contract - the server returns changes since `last_pulled_at` as created/updated/deleted ... |
|
|
321
|
+
| [alex8088/electron-vite](https://github.com/alex8088/electron-vite) | 5539 | MIT | electron, vite, typescript, rollup | standard | The canonical answer to "how do I configure an Electron build in 2026". Borrow the three-target electron.vite.config.ts shape (separate main / preload / renderer sections, each a full Vite config) and the externalizeDepsPlugin ... |
|
|
322
|
+
| [obytes/react-native-template-obytes](https://github.com/obytes/react-native-template-obytes) | 4281 | MIT | expo, expo-router, typescript, nativewind/uniwind, ... | professional | The best-in-class CI and env story in this category. `.github/workflows/` is the single biggest borrow - 14 real workflows including type-check.yml, lint-ts.yml, test.yml, expo-doctor.yml, eas-build-preview.yml, ... |
|
|
323
|
+
| [expo/examples](https://github.com/expo/examples) | 3677 | MIT | expo, react-native, typescript, various integrations | simple | First-party, per-concern minimal projects - each top-level directory is one runnable Expo app demonstrating exactly one integration, which is the ideal shape for atomic scaffold layers. Use it as the canonical reference for the ... |
|
|
324
|
+
| [dotnet/maui-samples](https://github.com/dotnet/maui-samples) | 3651 | MIT | dotnet, maui, csharp, xaml, mvvm | standard | First-party MIT-licensed MAUI code, which matters because most MAUI sample material is either unlicensed blog code or Microsoft-docs snippets. Use it for the baseline a scaffolder must emit correctly: the .csproj multi-targeting ... |
|
|
325
|
+
| [VeryGoodOpenSource/very_good_cli](https://github.com/VeryGoodOpenSource/very_good_cli) | 2398 | MIT | dart, flutter, mason, bloc, very_good_analysis | enterprise | The most directly transferable repo in this catalog, because it *is* a scaffolder. Copy the architecture, not just the output: `lib/src/commands/create/templates/template.dart` defines an abstract Template with an ... |
|
|
326
|
+
| [agmmnn/tauri-ui](https://github.com/agmmnn/tauri-ui) | 2102 | MIT | tauri v2, react, shadcn/ui, tailwind, ... | standard | This has evolved from a static starter into a generator whose internal model is close to what Groundplan needs. `packages/create-tauri-ui/src/adapters/` has one adapter per frontend (vite.ts, next.ts, react-router.ts, start.ts, ... |
|
|
327
|
+
| [bizz84/starter_architecture_flutter_firebase](https://github.com/bizz84/starter_architecture_flutter_firebase) | 1809 | MIT | flutter, riverpod, firebase, go_router, firebase_ui_auth | professional | The clearest reference implementation of feature-first Flutter layering. Every feature under `lib/src/features/<feature>/` is split into data/ domain/ application/ presentation/ - e.g. ... |
|
|
328
|
+
| [tauri-apps/create-tauri-app](https://github.com/tauri-apps/create-tauri-app) | 1604 | Apache-2.0 | tauri v2, rust, vite, ... | simple | The template composition mechanism is the prize. `templates/_base_/` holds everything shared (src-tauri/Cargo.toml.lte, src-tauri/build.rs, the full icons/ set including icon.icns / icon.ico / Square*Logo.png, and _gitignore) and ... |
|
|
329
|
+
| [Stacked-Org/stacked](https://github.com/Stacked-Org/stacked) | 1039 | MIT | dart, flutter, mvvm, get_it, code-generation | standard | A coherent MVVM answer for Flutter: ViewModel base classes (BaseViewModel, and the Future/Stream/Reactive variants) that standardize busy/error state, plus a service-locator registration convention via get_it and a StackedApp ... |
|
|
330
|
+
| [daltonmenezes/electron-app](https://github.com/daltonmenezes/electron-app) | 806 | MIT | electron, electron-vite, react 19, typescript 5, tailwind ... | professional | A well-factored Electron application skeleton living under `template/`. The standout is `template/src/lib/electron-app/factories/` - factories/app/instance.ts and app/setup.ts wrap app lifecycle, factories/windows/create.ts is a ... |
|
|
331
|
+
| [flemingvincent/expo-clerk-convex](https://github.com/flemingvincent/expo-clerk-convex) | 781 | MIT | expo, expo-router, typescript, clerk, convex, nativewind | standard | A complete, small email/password auth flow wired end to end - Clerk for identity plus Convex as the reactive backend, which gives optimistic local writes and automatic resubscription on reconnect (a practical offline-tolerant ... |
|
|
332
|
+
| [powersync-ja/powersync-js](https://github.com/powersync-ja/powersync-js) | 691 | Apache-2.0 | typescript, sqlite, react-native, web, node, ... | professional | The most actively developed offline-first option here and the cleanest architectural split to copy: a local SQLite database is the only thing the UI reads/writes, and a separate replication process streams changes to and from the ... |
|
|
333
|
+
|
|
334
|
+
### observability
|
|
335
|
+
|
|
336
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
337
|
+
|---|---:|---|---|---|---|
|
|
338
|
+
| [prometheus/prometheus](https://github.com/prometheus/prometheus) | 65222 | Apache-2.0 | Go - metrics TSDB, scrape engine, PromQL, alerting rules | professional | The upstream source of the config schemas every other layer here references. Borrow documentation/examples/prometheus.yml as the canonical scrape_config skeleton - global scrape_interval and evaluation_interval, rule_files, ... |
|
|
339
|
+
| [SigNoz/signoz](https://github.com/SigNoz/signoz) | 30828 | MIT | Self-hosted OTel-native APM on ClickHouse | enterprise | Self-hosted OTel-native alternative to Datadog, useful mainly as a READING reference for how OTLP data is modelled on ClickHouse. conf/example.yaml is the annotated server config. pkg/telemetrystore/ is the store abstraction - ... |
|
|
340
|
+
| [uber-go/zap](https://github.com/uber-go/zap) | 24576 | MIT | Go high-performance structured logging | standard | The config-driven constructor is what to adapt: zap.Config as a struct populated from environment (level, encoding json/console, outputPaths, initialFields) then .Build(), which gives dev and prod presets from one code path via ... |
|
|
341
|
+
| [jaegertracing/jaeger](https://github.com/jaegertracing/jaeger) | 23012 | Apache-2.0 | Distributed tracing backend; v2 is built on the OTel ... | professional | The all-in-one compose service (OTLP ingest on 4317/4318, UI on 16686) as the dev default when only tracing is needed. Jaeger v2 is built on the OTel Collector, so its config IS a collector config - that keeps dev and prod in a ... |
|
|
342
|
+
| [pinojs/pino](https://github.com/pinojs/pino) | 18044 | MIT | Node.js structured JSON logging | simple | The logger factory with redact paths for auth headers and cookies, custom serializers, the pino-pretty-in-dev / raw-JSON-in-prod transport split, and pino-http for per-request child loggers carrying a request id. |
|
|
343
|
+
| [rs/zerolog](https://github.com/rs/zerolog) | 12476 | MIT | Go zero-allocation JSON structured logging | simple | The chained-field API (log.Info().Str("k",v).Int("n",1).Msg("done")) and, more usefully for a template, hlog - the bundled net/http middleware in the hlog subpackage that attaches a request-scoped logger to the context, generates ... |
|
|
344
|
+
| [getsentry/sentry-javascript](https://github.com/getsentry/sentry-javascript) | 8710 | MIT | JavaScript/TypeScript error and performance monitoring SDKs | standard | The Next.js file convention, withSentryConfig for source-map upload at build time, and global-error.tsx for the React error boundary. CONVENTION UPDATED - verify before generating. A previous revision described a three-file ... |
|
|
345
|
+
| [serilog/serilog](https://github.com/serilog/serilog) | 8013 | Apache-2.0 | .NET structured logging with message templates and sinks | simple | The message-template model is the point: log.Information("Order {OrderId} shipped to {Customer}", id, customer) preserves OrderId and Customer as queryable fields instead of flattening to a string. Borrow the two-stage bootstrap ... |
|
|
346
|
+
| [coroot/coroot](https://github.com/coroot/coroot) | 7838 | Apache-2.0 | eBPF-based zero-instrumentation observability, service map, ... | professional | The strongest zero-instrumentation option - eBPF captures service-to-service traffic with no code changes, which makes it viable as a default-on layer that cannot break the user's application. The deployment artifact is a single ... |
|
|
347
|
+
| [stefanprodan/dockprom](https://github.com/stefanprodan/dockprom) | 6571 | MIT | Docker Compose host/container monitoring stack - ... | simple | Classic host and container monitoring compose stack, small enough to read end to end. Borrow docker-compose.yml, prometheus/prometheus.yml scrape configs for cAdvisor and node-exporter, prometheus/alert.rules, ... |
|
|
348
|
+
| [open-telemetry/opentelemetry-go](https://github.com/open-telemetry/opentelemetry-go) | 6480 | Apache-2.0 | Go - OpenTelemetry API/SDK, OTLP trace/metric/log exporters | standard | Go has no auto-instrumentation agent, so the explicit bootstrap IS the layer. The core repo ships the API/SDK and the exporters (exporters/otlp/otlptrace/otlptracegrpc, confirmed present) but has NO example/ or examples/ ... |
|
|
349
|
+
| [prometheus/client_golang](https://github.com/prometheus/client_golang) | 6010 | Apache-2.0 | Go Prometheus instrumentation client | simple | The custom-registry pattern (prometheus.NewRegistry() with explicit MustRegister rather than the global default, so tests stay isolated), promauto.With(reg) for declaration, promhttp.HandlerFor mounted on a separate admin port ... |
|
|
350
|
+
| [hynek/structlog](https://github.com/hynek/structlog) | 4878 | Apache-2.0 OR MIT | Python structured logging | simple | The configure() processor chain (merge_contextvars, add_log_level, TimeStamper(iso), format_exc_info, then JSONRenderer in prod and ConsoleRenderer in dev) and the ProcessorFormatter bridge that routes stdlib logging from ... |
|
|
351
|
+
| [micrometer-metrics/micrometer](https://github.com/micrometer-metrics/micrometer) | 4871 | Apache-2.0 | JVM metrics and observation facade, Spring Boot Actuator ... | professional | The JVM observability layer. Borrow MeterRegistry injection, micrometer-registry-prometheus wiring that exposes /actuator/prometheus, common tags applied through a MeterRegistryCustomizer, and the micrometer-observation API where ... |
|
|
352
|
+
| [open-telemetry/opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib) | 4796 | Apache-2.0 | Go - OpenTelemetry Collector components (receivers, ... | enterprise | This is where real collector COMPONENT configuration lives. Borrow the processor configuration patterns that every production pipeline needs - memory_limiter and batch ordering, resourcedetection for cloud/host attributes, ... |
|
|
353
|
+
| [Xabaril/AspNetCore.Diagnostics.HealthChecks](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks) | 4369 | Apache-2.0 | .NET health-check packages, publishers and UI | standard | Reference implementation of health-check patterns usable in any stack. Borrow the tag-based split (register checks with ready/live tags, map /health/ready and /health/live to tag-filtered predicates - exactly what Kubernetes ... |
|
|
354
|
+
| [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) | 3731 | Apache-2.0 | .NET / C# - OpenTelemetry SDK, OTLP/Prometheus/Console ... | standard | The builder-extension wiring is the copyable artifact: a single services.AddOpenTelemetry().ConfigureResource(...).WithTracing(...).WithMetrics(...) block plus .UseOtlpExporter(), which collapses the whole setup into one file ... |
|
|
355
|
+
| [open-telemetry/opentelemetry-js](https://github.com/open-telemetry/opentelemetry-js) | 3419 | Apache-2.0 | TypeScript/JavaScript - OpenTelemetry API/SDK for Node and ... | standard | The NodeSDK quickstart plus the packages/opentelemetry-sdk-trace-node README give the copyable unit: an instrumentation.ts that constructs new NodeSDK({ resource, traceExporter: new OTLPTraceExporter(), instrumentations: ... |
|
|
356
|
+
| [grafana/alloy](https://github.com/grafana/alloy) | 3346 | Apache-2.0 | Grafana's OpenTelemetry Collector distribution with a ... | professional | An official OTel Collector distribution with a programmable configuration language. Borrow example-config.alloy and the example/ directory (both confirmed present) - the component-and-forward_to syntax is far more readable in a ... |
|
|
357
|
+
| [open-telemetry/opentelemetry-demo](https://github.com/open-telemetry/opentelemetry-demo) | 3217 | Apache-2.0 | Polyglot microservice demo - OTel across ~15 languages with ... | professional | Canonical polyglot OTel reference. Borrow otel-config.yml and the split compose layering (compose.yaml for services, compose.observability.yaml for backends, compose.full.yaml for everything, plus compose.extras.yaml / ... |
|
|
358
|
+
| [open-telemetry/opentelemetry-java-instrumentation](https://github.com/open-telemetry/opentelemetry-java-instrumentation) | 2581 | Apache-2.0 | Java - bytecode-agent auto-instrumentation for JVM ... | professional | The zero-code JVM layer. What a scaffolder generates is not source but Dockerfile and env: download opentelemetry-javaagent.jar from the release assets, add -javaagent:/otel/opentelemetry-javaagent.jar to JAVA_TOOL_OPTIONS, then ... |
|
|
359
|
+
| [open-telemetry/opentelemetry-python](https://github.com/open-telemetry/opentelemetry-python) | 2550 | Apache-2.0 | Python - OpenTelemetry API/SDK, OTLP exporters ... | standard | Two distinct layers worth generating separately, but they come from TWO DIFFERENT REPOS and a previous revision wrongly attributed both to this one. First, the zero-code path: the opentelemetry-instrument CLI plus OTEL_* ... |
|
|
360
|
+
| [slok/sloth](https://github.com/slok/sloth) | 2515 | Apache-2.0 | Go - Prometheus SLO generator producing multi-window ... | standard | The cleanest path from a short SLO spec to correct multi-window multi-burn-rate alerts, which almost nobody writes correctly by hand. Borrow the spec format and the examples/ tree (confirmed present) including the generated ... |
|
|
361
|
+
| [getsentry/sentry-python](https://github.com/getsentry/sentry-python) | 2197 | MIT | Python error and performance monitoring SDK with framework ... | standard | The single sentry_sdk.init() block belongs in one config module: dsn and environment from env vars, traces_sample_rate as a float setting, release stamped from the CI commit sha, and an explicit integrations list ... |
|
|
362
|
+
| [grafana/docker-otel-lgtm](https://github.com/grafana/docker-otel-lgtm) | 1939 | Apache-2.0 | Docker image bundling OpenTelemetry Collector + Loki, ... | simple | The single best "observability backend in one container" layer. Borrow docker/Dockerfile plus docker/run-all.sh, the supervisor-style entrypoint that boots all five backends from one image via the per-component run-*.sh scripts. ... |
|
|
363
|
+
| [open-telemetry/opentelemetry-go-contrib](https://github.com/open-telemetry/opentelemetry-go-contrib) | 1652 | Apache-2.0 | Go - OTel HTTP/gRPC instrumentation libraries, propagators, ... | standard | The companion the core Go SDK entry depends on, added during verification because the core repo's examples were cited there but actually live here. Two things to take. First, the examples: examples/dice/instrumented/otel.go is a ... |
|
|
364
|
+
| [pyrra-dev/pyrra](https://github.com/pyrra-dev/pyrra) | 1529 | Apache-2.0 | Go + React - SLO definitions compiled to Prometheus ... | standard | The error-budget calculator the brief asks for, and the natural complement to sloth. Borrow the ServiceLevelObjective spec shape from examples/ - target as a percentage, window as a duration, and an indicator that is either a ... |
|
|
365
|
+
| [OpenSLO/OpenSLO](https://github.com/OpenSLO/OpenSLO) | 1509 | Apache-2.0 | Vendor-neutral SLO specification (YAML schema) | simple | Use as the schema layer, not a runtime. Borrow the Kubernetes-style kinds - SLO, SLI, AlertPolicy, AlertCondition, AlertNotificationTarget, Service and DataSource, all seven confirmed present in the spec README - as the shape for ... |
|
|
366
|
+
| [open-telemetry/opentelemetry-python-contrib](https://github.com/open-telemetry/opentelemetry-python-contrib) | 1073 | Apache-2.0 | Python - opentelemetry-instrument zero-code agent plus ... | standard | This is where Python's zero-code story actually lives, added during verification because the core opentelemetry-python entry claimed it. opentelemetry-instrumentation/ declares both console scripts in its pyproject.toml - ... |
|
|
367
|
+
| [open-telemetry/opentelemetry-js-contrib](https://github.com/open-telemetry/opentelemetry-js-contrib) | 917 | Apache-2.0 | TypeScript - Node auto-instrumentation meta-package and ... | standard | The half of the Node OTel story that is not in core, added during verification because the opentelemetry-js entry's snippet silently depended on it. packages/auto-instrumentations-node is the meta-package exporting ... |
|
|
368
|
+
| [nestjs/terminus](https://github.com/nestjs/terminus) | 741 | MIT | NestJS health-check module | simple | The HealthController shape (@Get('health') @HealthCheck() returning health.check([...indicators])) and the custom-indicator contract for app-specific checks. |
|
|
369
|
+
| [open-telemetry/opentelemetry-dotnet-contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | 646 | Apache-2.0 | .NET - OTel instrumentation packages (ASP.NET Core, ... | standard | Where the .NET instrumentation packages actually live, added during verification because the core opentelemetry-dotnet entry claimed them. src/OpenTelemetry.Instrumentation.AspNetCore and src/OpenTelemetry.Instrumentation.Http ... |
|
|
370
|
+
| [hellofresh/health-go](https://github.com/hellofresh/health-go) | 589 | Apache-2.0 | Go library for HTTP health/readiness endpoints with ... | simple | The smallest complete readiness pattern in Go, and a direct fit for the existing health-checks layer. Borrow health.New() with health.WithChecks(health.Config{Name, Timeout, SkipOnErr, Check: func(ctx) error}) - the per-check ... |
|
|
371
|
+
| [google/slo-generator](https://github.com/google/slo-generator) | 564 | Apache-2.0 | Python - multi-backend SLO and error-budget computation ... | standard | The multi-backend SLO layer for stacks that are not Prometheus-only, which is where sloth stops being an option. The copyable artifacts are concrete: samples/config.yaml is the shared config, and its four top-level keys ... |
|
|
372
|
+
| [open-telemetry/opentelemetry-collector-releases](https://github.com/open-telemetry/opentelemetry-collector-releases) | 488 | Apache-2.0 | OCB (OpenTelemetry Collector Builder) distribution ... | standard | The correct home for the custom-distribution pattern that the contrib entry previously misattributed. distributions/ holds real manifest.yaml files (otelcol, otelcol-contrib, otelcol-k8s) showing the exact schema - dist: ... |
|
|
373
|
+
|
|
374
|
+
### payments-billing
|
|
375
|
+
|
|
376
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
377
|
+
|---|---:|---|---|---|---|
|
|
378
|
+
| [juspay/hyperswitch](https://github.com/juspay/hyperswitch) | 43327 | Apache-2.0 | Rust, Postgres, Redis; multi-PSP payment orchestration | enterprise | The payment-orchestration tier — how to stay processor-agnostic instead of hardcoding Stripe. Borrow the connector abstraction (each PSP implements a common request/response trait, so adding a processor is additive), smart ... |
|
|
379
|
+
| [wasp-lang/open-saas](https://github.com/wasp-lang/open-saas) | 14941 | MIT | Wasp framework, React, Node.js, Prisma, Stripe + Polar + ... | professional | The single best multi-provider abstraction in this category, and the reason to study it is one file. Verified layout under `template/app/src/payment/`: `paymentProcessor.ts` defines the provider interface, with `stripe/`, ... |
|
|
380
|
+
| [polarsource/polar](https://github.com/polarsource/polar) | 10067 | Apache-2.0 | Python (FastAPI) backend, TypeScript/Next.js clients, ... | professional | A complete, production merchant-of-record and entitlements system with the source open — the most instructive full implementation here of the layer *above* the payment processor. Monorepo splits `server/` (billing engine), ... |
|
|
381
|
+
| [t3dotgg/stripe-recommendations](https://github.com/t3dotgg/stripe-recommendations) | 6376 | MIT | Documentation + TypeScript snippets, KV/Redis-oriented | simple | A short, opinionated writeup of the specific Stripe failure modes that bite in production, and the highest value-per-line item in this list. The central pattern worth encoding as a layer: never trust individual webhook event ... |
|
|
382
|
+
| [killbill/killbill](https://github.com/killbill/killbill) | 5627 | Apache-2.0 | Java, JAX-RS, MySQL/Postgres, plugin architecture (OSGi) | enterprise | The reference domain model for subscription billing, and the value is the decomposition even if you never run the Java. Verified top-level modules map one-to-one onto the concepts a serious billing layer needs: `catalog` ... |
|
|
383
|
+
| [boxyhq/saas-starter-kit](https://github.com/boxyhq/saas-starter-kit) | 4869 | Apache-2.0 | Next.js, TypeScript, Prisma, Postgres, NextAuth, Stripe, ... | enterprise | The enterprise-procurement half of billing that consumer-grade starters omit entirely: per-seat/team subscriptions tied to a `Team` + `TeamMember` model, an audit-log trail over billing-relevant events (plan change, seat ... |
|
|
384
|
+
| [useautumn/autumn](https://github.com/useautumn/autumn) | 2617 | Apache-2.0 | TypeScript, Node, Postgres; sits on top of Stripe | professional | Purpose-built for the layer most teams hand-roll badly: pricing model and feature entitlements on top of Stripe. Borrow the declarative product/feature/pricing definition (plans and their limits declared as data, so adding a tier ... |
|
|
385
|
+
| [laravel/cashier-stripe](https://github.com/laravel/cashier-stripe) | 2537 | MIT | PHP, Laravel, Stripe | standard | The most mature framework-native billing abstraction in any ecosystem, and the best model for what a good billing API *feels* like. Borrow the `Billable` trait design (a model gains `newSubscription()`, `subscribed()`, ... |
|
|
386
|
+
| [openmeterio/openmeter](https://github.com/openmeterio/openmeter) | 2125 | Apache-2.0 | Go, ClickHouse, Kafka/Redpanda, CloudEvents; Stripe ... | professional | The metering-and-entitlements layer for usage-based and AI/API pricing — the piece Stripe Billing handles poorly at volume. Borrow the CloudEvents-shaped usage event schema (idempotent event ids, so duplicate ingestion is safe by ... |
|
|
387
|
+
| [dj-stripe/dj-stripe](https://github.com/dj-stripe/dj-stripe) | 1786 | MIT | Python, Django, Postgres, Stripe | standard | The strongest example of the "mirror Stripe into your own database" strategy: dj-stripe defines Django models for Customer, Subscription, Product, Price, Invoice, Event and keeps them synced from webhooks, so application code ... |
|
|
388
|
+
| [spatie/laravel-webhook-client](https://github.com/spatie/laravel-webhook-client) | 1190 | MIT | PHP, Laravel; provider-agnostic inbound webhook receiver | simple | A tight, single-concern implementation of *receiving webhooks safely*, decoupled from any payment provider — useful precisely because it isolates the pattern. Borrow the pipeline shape: verify signature → persist the raw payload ... |
|
|
389
|
+
| [stripe-samples/subscription-use-cases](https://github.com/stripe-samples/subscription-use-cases) | 902 | MIT | Polyglot — Node, Python, Ruby, PHP, Java, Go, .NET server ... | simple | Stripe's own first-party reference for subscription billing, each shape an isolated minimal app. Verified top-level samples: `fixed-price-subscriptions`, `usage-based-subscriptions` and `usage-based-subscriptions-legacy` (the ... |
|
|
390
|
+
| [stripe-samples/accept-a-payment](https://github.com/stripe-samples/accept-a-payment) | 836 | MIT | Polyglot server samples (Node, Python, Ruby, PHP, Java, Go, ... | simple | The simplest correct one-time-payment path, and the right starting point when a product needs checkout without subscriptions. Covers both hosted Stripe Checkout redirect and embedded Payment Element/custom-flow variants, so it is ... |
|
|
391
|
+
|
|
392
|
+
### realtime-messaging
|
|
393
|
+
|
|
394
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
395
|
+
|---|---:|---|---|---|---|
|
|
396
|
+
| [socketio/socket.io](https://github.com/socketio/socket.io) | 63158 | MIT | nodejs-typescript | standard | The `examples/` directory is effectively a free template library — 37 apps that map almost 1:1 onto Groundplan layers. Highest value: `nextjs-app-router` and `nextjs-pages-router` (the custom-server wiring teams always get ... |
|
|
397
|
+
| [apache/kafka](https://github.com/apache/kafka) | 33267 | Apache-2.0 | java-scala | enterprise | The default event backbone in large and regulated organisations, and the one `broker-*` layer that will be mandated rather than chosen. Borrow the operational contract rather than the source: KRaft-mode cluster config (ZooKeeper ... |
|
|
398
|
+
| [celery/celery](https://github.com/celery/celery) | 28699 | BSD-3-Clause | python | professional | The incumbent Python task queue and the realistic `queue-celery-python` layer. Borrow the conventional project layout (a `celery.py` app module, `tasks.py` per Django/Flask app, autodiscovery), and the production settings that ... |
|
|
399
|
+
| [websockets/ws](https://github.com/websockets/ws) | 22786 | MIT | nodejs | simple | The unopinionated Node WebSocket primitive that almost every higher-level library sits on. Borrow the documented recipes rather than the library internals: the `examples/` server-side broadcast loop, the HTTP-upgrade + ... |
|
|
400
|
+
| [triggerdotdev/trigger.dev](https://github.com/triggerdotdev/trigger.dev) | 15682 | Apache-2.0 | nodejs-typescript | professional | Durable, long-running background tasks defined in plain TypeScript, with retries, queues, concurrency control and observability — and, unusually for this space, genuinely Apache-2.0 rather than SSPL/BUSL. Borrow the task ... |
|
|
401
|
+
| [hibiken/asynq](https://github.com/hibiken/asynq) | 13528 | MIT | go | standard | The Go analogue of BullMQ/Sidekiq and a clean `queue-*` template for Go. Borrow the `asynq.Client.Enqueue` + `asynq.ServeMux` handler-routing split (it deliberately mirrors net/http, so the mental model is free), weighted and ... |
|
|
402
|
+
| [centrifugal/centrifugo](https://github.com/centrifugal/centrifugo) | 10527 | Apache-2.0 | go-standalone-server | professional | A self-hosted Pusher/Ably replacement that runs as a sidecar, which means the realtime layer stops being coupled to your app language. This is the strongest `realtime-*` option for polyglot backends. Borrow the two auth models: ... |
|
|
403
|
+
| [ThreeDotsLabs/watermill](https://github.com/ThreeDotsLabs/watermill) | 9801 | MIT | go | standard | The broker-agnostic abstraction that lets one Groundplan template target many backends. The `message.Router` with middleware (retry, poison queue, correlation id, recovery) is the piece to copy — it turns each broker into a ... |
|
|
404
|
+
| [taskforcesh/bullmq](https://github.com/taskforcesh/bullmq) | 9152 | MIT | nodejs-typescript | standard | The default job queue for Node and the right `queue-*` baseline. Borrow the Queue/Worker/QueueEvents triad as separate process entry points, the `FlowProducer` parent/child dependency graph (fan-out then join — the cleanest OSS ... |
|
|
405
|
+
| [supabase/realtime](https://github.com/supabase/realtime) | 7605 | Apache-2.0 | elixir-phoenix | professional | The clearest production reference for the three primitives every realtime product re-implements: Broadcast (ephemeral low-latency client-to-client), Presence (CRDT-backed shared online state that self-heals across nodes), and ... |
|
|
406
|
+
| [hatchet-dev/hatchet](https://github.com/hatchet-dev/hatchet) | 7523 | MIT | go-postgres | professional | The sweet spot between "a job queue" and "Temporal": durable task orchestration with retries, real-time monitoring, alerting and logging, using Postgres as the single durability layer for both runtime and observability — no ... |
|
|
407
|
+
| [nats-io/nats.go](https://github.com/nats-io/nats.go) | 6694 | Apache-2.0 | go | standard | The lightest credible message broker to template — a single ~15MB server binary with no ZooKeeper/Kraft ceremony, which makes it the right default `broker-*` layer for teams that do not need Kafka. Borrow from the `jetstream/` ... |
|
|
408
|
+
| [coder/websocket](https://github.com/coder/websocket) | 5349 | ISC | go | simple | The smallest credible WebSocket baseline in Go. Vendor the `internal/examples/echo` server (echoServer.ServeHTTP + websocket.Accept + rate limiting via golang.org/x/time/rate) and `internal/examples/chat` (subscriber fan-out with ... |
|
|
409
|
+
| [sysid/sse-starlette](https://github.com/sysid/sse-starlette) | 841 | BSD-3-Clause | python-fastapi | simple | The reference way to do Server-Sent Events on FastAPI/Starlette. `EventSourceResponse` handles the three things hand-rolled SSE always gets wrong: automatic keepalive pings (default 15s, `ping_message_factory` to customise), ... |
|
|
410
|
+
| [temporalio/samples-typescript](https://github.com/temporalio/samples-typescript) | 462 | MIT | nodejs-typescript | professional | Low stars but the highest template density in this category: 60+ runnable sample projects, MIT, maintained by Temporal itself. The canonical layout — `src/workflows.ts`, `src/activities.ts`, `src/worker.ts`, `src/client.ts` — is ... |
|
|
411
|
+
|
|
412
|
+
### security-compliance
|
|
413
|
+
|
|
414
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
415
|
+
|---|---:|---|---|---|---|
|
|
416
|
+
| [aquasecurity/trivy](https://github.com/aquasecurity/trivy) | 36974 | Apache-2.0 | go, oci, iac, sbom, sarif, kubernetes | professional | The one scanner that covers vulnerabilities, IaC misconfiguration, secrets, and licence detection in a single binary — the highest-coverage-per-line choice for a generated repo. Author trivy.yaml against the documented config ... |
|
|
417
|
+
| [gitleaks/gitleaks](https://github.com/gitleaks/gitleaks) | 28198 | MIT | go, toml, pre-commit, github-actions | simple | config/gitleaks.toml is the reference ruleset format — each rule is [[rules]] with id / description / regex / entropy / keywords / tags, and [[rules.allowlist]] blocks scoped per-rule rather than globally. Vendor that shape ... |
|
|
418
|
+
| [anchore/grype](https://github.com/anchore/grype) | 12589 | Apache-2.0 | go, sbom, vulnerability-db, oci | standard | The other half of the syft pairing, and the piece that turns an SBOM from a document into a gate. .grype.yaml is authored by the layer, not copied from the repo (none is checked in): `fail-on-severity` is the CI gate knob, and ... |
|
|
419
|
+
| [helmetjs/helmet](https://github.com/helmetjs/helmet) | 10710 | MIT | node, typescript, express, connect | simple | middlewares/ is fourteen self-contained one-header modules (content-security-policy, strict-transport-security, referrer-policy, origin-agent-cluster, the three cross-origin-*-policy modules, and the x-* set) — the cleanest ... |
|
|
420
|
+
| [github/codeql](https://github.com/github/codeql) | 9847 | MIT | ql, java, javascript, python, go, csharp, ruby, rust | professional | The query packs and the query *suites* — MIT-licensed, which makes this the vendorable SAST ruleset in a category where the obvious alternative (Semgrep community rules) is not. Per language, ... |
|
|
421
|
+
| [anchore/syft](https://github.com/anchore/syft) | 9254 | Apache-2.0 | go, sbom, cyclonedx, spdx, oci | standard | The canonical SBOM-generation layer. Note there is no .syft.yaml checked into the repo to copy — the layer authors one against the documented schema. The keys worth emitting: the `output:` multi-format list (emit CycloneDX JSON ... |
|
|
422
|
+
| [sigstore/cosign](https://github.com/sigstore/cosign) | 6142 | Apache-2.0 | go, oci, oidc, in-toto, rekor | professional | The reference implementation of artifact signing and, more importantly, of *verifying* at admission time. Borrow three concrete things: (1) the keyless CI signing step — `cosign sign --yes <image>@<digest>` with `id-token: write` ... |
|
|
423
|
+
| [ossf/scorecard](https://github.com/ossf/scorecard) | 5587 | Apache-2.0 | go, github-actions, sarif, probes | standard | Use it as the requirements document for what a hardened repository looks like — each check under checks/ (Branch-Protection, Token-Permissions, Pinned-Dependencies, Dangerous-Workflow, Signed-Releases, Dependency-Update-Tool, ... |
|
|
424
|
+
| [open-policy-agent/conftest](https://github.com/open-policy-agent/conftest) | 3224 | Apache-2.0 | go, rego, opa, yaml, terraform | standard | The generic "assert things about config files" engine — the right tool when a compliance rule is repo-specific and no off-the-shelf scanner covers it. Borrow the policy/ convention and the deny/warn/violation rule naming contract ... |
|
|
425
|
+
| [ComplianceAsCode/content](https://github.com/ComplianceAsCode/content) | 2769 | BSD-3-Clause | yaml, jinja2, ansible, bash, scap, openscap | enterprise | The most mature open-source answer to "compliance as code", and BSD-3-Clause so it is actually copyable. The structural idea is the prize: a single control definition compiles into an OVAL check, an Ansible remediation task, and ... |
|
|
426
|
+
| [step-security/harden-runner](https://github.com/step-security/harden-runner) | 1228 | Apache-2.0 | github-actions, typescript, ebpf | simple | The single highest-value four-line addition to any generated CI workflow. Borrow the step shape from the README — `uses: step-security/harden-runner@<sha>` with `egress-policy: audit` on first adoption, then `egress-policy: ... |
|
|
427
|
+
| [sigstore/gitsign](https://github.com/sigstore/gitsign) | 1110 | Apache-2.0 | go, git, oidc, sigstore | simple | Keyless commit signing with zero key management — the whole value is about ten lines of git config that a layer can emit directly: gpg.x509.program=gitsign, gpg.format=x509, commit.gpgsign=true, tag.gpgsign=true, and ... |
|
|
428
|
+
| [CycloneDX/specification](https://github.com/CycloneDX/specification) | 524 | Apache-2.0 | json-schema, xsd, protobuf, sbom | standard | The schema itself, and it is Apache-2.0 — unusually permissive for a standard, so the JSON Schema files under schema/ (bom-1.6.schema.json and the SPDX licence enum it references) can be vendored directly into a layer for offline ... |
|
|
429
|
+
| [oscal-compass/compliance-trestle](https://github.com/oscal-compass/compliance-trestle) | 264 | Apache-2.0 | python, oscal, pydantic, json, markdown | enterprise | OSCAL (NIST's machine-readable control language) is where compliance-as-code is heading, and this is the only well-maintained permissive toolchain for it. Two borrowable ideas: (1) the Pydantic models generated from the OSCAL ... |
|
|
430
|
+
|
|
431
|
+
### testing
|
|
432
|
+
|
|
433
|
+
| source | stars | spdx | stack | complexity | what to borrow |
|
|
434
|
+
|---|---:|---|---|---|---|
|
|
435
|
+
| [microsoft/playwright](https://github.com/microsoft/playwright) | 93088 | Apache-2.0 | TypeScript/Node - cross-browser E2E runner, test fixtures, ... | enterprise | The single best source for an E2E layer. Take tests/playwright-test/playwright.config.ts as the canonical multi-project config - it is the repo's own runner config, so it shows projects/, per-project `use` overrides and reporter ... |
|
|
436
|
+
| [cypress-io/cypress](https://github.com/cypress-io/cypress) | 50608 | MIT | TypeScript/Node monorepo - E2E + component testing runner, ... | professional | The component-testing story is what Playwright does not have, and it lives in npm/ - each of npm/react, npm/vue, npm/angular, npm/mount-utils, npm/webpack-dev-server and npm/vite-dev-server is a self-contained adapter showing how ... |
|
|
437
|
+
| [jestjs/jest](https://github.com/jestjs/jest) | 45459 | MIT | TypeScript/Node monorepo - test runner, snapshot engine, ... | professional | examples/ is a ready-made set of starter configs per stack - examples/typescript, examples/react, examples/angular, examples/snapshot and friends each ship a package.json plus config that can be lifted almost verbatim into a ... |
|
|
438
|
+
| [locustio/locust](https://github.com/locustio/locust) | 28007 | MIT | Python - distributed load testing, scenarios as plain ... | simple | examples/ is a flat, copy-ready library of locustfiles - examples/basic.py and examples/locustfile.py are the strip-down-to-nothing starting points that make this the `simple` rung of the load-testing ladder. The ones that matter ... |
|
|
439
|
+
| [mswjs/msw](https://github.com/mswjs/msw) | 18076 | MIT | TypeScript - network-layer API mocking via Service Worker ... | simple | The cleanest single-concern layer in this category and the easiest to strip down. src/mockServiceWorker.js is the literal artifact that must land in the generated repo's public/ directory - the `msw init` step just copies it, so ... |
|
|
440
|
+
| [vitest-dev/vitest](https://github.com/vitest-dev/vitest) | 16858 | MIT | TypeScript - Vite-native unit test runner, v8/istanbul ... | standard | examples/ is the layer catalogue, and its CURRENT contents matter because the old react/react-testing-lib examples are gone - as of this pass it holds basic, fastify, in-source-test, lit, opentelemetry, profiling, projects and ... |
|
|
441
|
+
| [pytest-dev/pytest](https://github.com/pytest-dev/pytest) | 14346 | MIT | Python - test framework, fixture system, plugin ... | professional | doc/en/example/ is the highest-value directory in the repo for template generation - it is a curated set of runnable layouts (parametrisation, fixture scoping, marker usage, simple/ and special/ directory conventions) written ... |
|
|
442
|
+
| [dubzzz/fast-check](https://github.com/dubzzz/fast-check) | 5069 | MIT | TypeScript - property-based testing, arbitraries, ... | standard | examples/ is small and deliberately pedagogical, and each numbered directory is a distinct layer variant: examples/001-simple (basic properties over pure functions), examples/002-recursive/isSearchTree (recursive data-structure ... |
|
|
443
|
+
| [xunit/xunit](https://github.com/xunit/xunit) | 4591 | Apache-2.0 | .NET / C# - xUnit.net v3 test framework, in-process runner, ... | professional | The v3 project layout under src/ is the reference for a modern .NET test setup - src/xunit.v3.core/xunit.v3.core.csproj shows the current package/TFM targeting, and the v3 shift matters for template generation because a v3 test ... |
|
|
444
|
+
| [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) | 4334 | MIT | .NET / C# - ephemeral Docker fixtures, xUnit/NUnit ... | professional | examples/ is the reason to pick this over the Java port for template work - it contains three complete, small, runnable reference applications rather than library internals: examples/WeatherForecast (an ASP.NET Core API wired to ... |
|
|
445
|
+
| [schemathesis/schemathesis](https://github.com/schemathesis/schemathesis) | 3474 | MIT | Python + Rust core - property-based API testing driven from ... | standard | The most under-used layer in this category: it turns an OpenAPI document into a generated conformance suite with no hand-written cases, which is the cheapest real coverage a generated API template can ship. examples/booking is a ... |
|
|
446
|
+
| [nedbat/coveragepy](https://github.com/nedbat/coveragepy) | 3393 | Apache-2.0 | Python - statement/branch coverage measurement, ... | simple | Read the repo's measurement of ITSELF, not the library - it is the most rigorous coverage configuration available to copy. metacov.ini is the meta-coverage config and shows the full parallel/combine arrangement (measuring ... |
|
|
447
|
+
| [stryker-mutator/stryker-js](https://github.com/stryker-mutator/stryker-js) | 2951 | Apache-2.0 | TypeScript/Node - mutation testing, per-runner plugins ... | standard | e2e/test/ is a corpus of ~60 complete miniature projects, one per supported configuration, and it is the best available answer to "what does a correct stryker.conf.json look like for MY runner" - ... |
|
|
448
|
+
| [testcontainers/testcontainers-node](https://github.com/testcontainers/testcontainers-node) | 2572 | MIT | TypeScript/Node - throwaway Docker containers as test ... | standard | packages/modules/ is a catalogue of ~40 ready service fixtures - postgresql, redis, kafka, mongodb, localstack, elasticsearch, clickhouse, cockroachdb, k3s, azurite, azurecosmosdb, chromadb and more - and each module directory is ... |
|
|
449
|
+
| [pact-foundation/pact-js](https://github.com/pact-foundation/pact-js) | 1791 | MIT | TypeScript/Node - consumer-driven contract testing (Pact ... | professional | examples/ is unusually well-organised and maps one-to-one onto layer variants: examples/http (the baseline consumer + provider pair), examples/messages (async/event contracts, the case most contract-testing guides skip), ... |
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## Reference-only sources (5) - DO NOT COPY CODE
|
|
454
|
+
|
|
455
|
+
> **These are read-only.** Copying a file from any repository in this table imports its copyleft or
|
|
456
|
+
> ShareAlike obligation into every repository Groundplan generates from that layer. Study the design,
|
|
457
|
+
> then reimplement in original code and original words. Running these as a container, or depending on
|
|
458
|
+
> them as an unmodified package, is fine; vendoring their source is not.
|
|
459
|
+
|
|
460
|
+
| source | stars | spdx | category | why it is fenced | what may still be learned |
|
|
461
|
+
|---|---:|---|---|---|---|
|
|
462
|
+
| [strapi/strapi](https://github.com/strapi/strapi) | 72681 | NOASSERTION | cms-ecommerce | The license is the problem. GitHub reports `license.spdx_id: NOASSERTION`, and the LICENSE file grants MIT Expat only (a) for code outside any `ee/` directory AND (b) if you have no registered account on Strapi's cloud offering — everything under `ee/` is ... | READ ONLY — DO NOT COPY FILES. The most-starred CMS in the category and worth studying for its content-type-builder model (schemas as JSON under `src/api/*/content-types/*/schema.json`, editable at ... |
|
|
463
|
+
| [goauthentik/authentik](https://github.com/goauthentik/authentik) | 22373 | NOASSERTION | auth | Do not copy files — the split license is the whole problem, and features drifting into `authentik/enterprise/` over time means a path that is MIT today may not be tomorrow. Operationally it needs server + worker + Postgres + Redis, so the compose floor is ... | Read for the blueprint system: `blueprints/` (default, example, system, migrations, plus `schema.json`) expresses the entire IdP configuration — flows, stages, prompts, policies, providers — as ... |
|
|
464
|
+
| [HangfireIO/Hangfire](https://github.com/HangfireIO/Hangfire) | 10098 | LGPL-3.0-or-later | realtime-messaging | The licence is a genuine trap: the GitHub API reports NOASSERTION and many blog posts describe Hangfire as simply "open source", but LICENSE.md is a multi-license under which the free terms are LGPL v3 — copying files into a generated project is out of scope ... | IDEAS ONLY — the OSS arm of the multi-license is LGPL v3, so no source copying. Hangfire remains the reference background-job design for .NET and the patterns are worth reimplementing over a ... |
|
|
465
|
+
| [riverqueue/river](https://github.com/riverqueue/river) | 5449 | MPL-2.0 | realtime-messaging | The license is the gate: MPL-2.0 obliges you to publish modifications to any River file you alter, which is exactly what a scaffolding tool would cause downstream users to do unknowingly. Keep it a go.mod dependency, never vendored source. Technically, ... | IDEAS ONLY — MPL-2.0 is file-level copyleft, so no River source may be vendored. The idea worth reimplementing is transactional enqueueing: insert the job in the same Postgres transaction as the ... |
|
|
466
|
+
| [vectordotdev/vector](https://github.com/vectordotdev/vector) | - | MPL-2.0 | observability | LICENSE fetched from raw.githubusercontent.com confirms Mozilla Public License 2.0. File-level copyleft: modifying an MPL file obliges you to publish that file's source under MPL, which does not infect the rest of a generated repo but is still a condition we ... | |
|
|
467
|
+
|
|
468
|
+
Additionally fenced reference-only by the security-compliance pass (documentation and spec sources,
|
|
469
|
+
not code repositories, so they carry no full catalog entry):
|
|
470
|
+
|
|
471
|
+
| source | spdx | why |
|
|
472
|
+
|---|---|---|
|
|
473
|
+
| [OWASP/ASVS](https://github.com/OWASP/ASVS) | CC-BY-SA-4.0 | ShareAlike propagates to derivative works - pasting requirement text into generated docs would put CC-BY-SA on the consumer's repository. Restate in original words, cite by URL. |
|
|
474
|
+
| [OWASP/CheatSheetSeries](https://github.com/OWASP/CheatSheetSeries) | CC-BY-SA-4.0 | Same ShareAlike propagation. Read for control coverage; write your own prose. |
|
|
475
|
+
| [slsa-framework/slsa](https://github.com/slsa-framework/slsa) | Community Specification License 1.0 | API reports NOASSERTION; LICENSE.md is a standards-body license, not an OSI code license. The *generator* repo (slsa-framework/slsa-github-generator, Apache-2.0) is separately vendorable and is listed above. |
|
|
476
|
+
| [github/advisory-database](https://github.com/github/advisory-database) | CC-BY-4.0 | Attribution-only and permissive in spirit, but outside the vendorable allowlist. Held at reference-only pending an explicit policy call. |
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## Excluded (16) - do not re-research these
|
|
481
|
+
|
|
482
|
+
Recorded so a later pass does not rediscover a popular repository and assume it is usable. Star counts
|
|
483
|
+
are deliberately included: **popularity is not a license.** Eleven of the entries below have no LICENSE
|
|
484
|
+
file at all, several of them with five-figure star counts.
|
|
485
|
+
|
|
486
|
+
| source | stars | spdx | category | reason |
|
|
487
|
+
|---|---:|---|---|---|
|
|
488
|
+
| [anthropics/skills](https://github.com/anthropics/skills) | 162394 | NONE | agent-tooling | Do not vendor any file. The README's "most skills are Apache 2.0" claim is not backed by an Apache LICENSE file anywhere we could find, and skills/docx, skills/pdf, skills/pptx and skills/xlsx carry an explicit source-available LICENSE.txt forbidding extraction, copying, and retention outside Anthropic's services. Treat the whole repo as ... |
|
|
489
|
+
| [grafana/grafana](https://github.com/grafana/grafana) | 75619 | AGPL-3.0 | observability | AGPL-3.0 confirmed by reading the LICENSE file ("GNU AFFERO GENERAL PUBLIC LICENSE Version 3"). Copying Grafana source would force AGPL terms onto every repo Groundplan generates. Grafana may still be RUN as a container and configured via provisioning YAML that we author ourselves - that config is our own work and carries no AGPL ... |
|
|
490
|
+
| [ComposioHQ/awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills) | 68043 | NONE | agent-tooling | No LICENSE file despite 68k stars, and it is corporate-maintained, which makes silent relicensing or takedown more likely, not less. Do not vendor. |
|
|
491
|
+
| [hesreallyhim/awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) | 50333 | CC-BY-NC-ND-4.0 | agent-tooling | CC-BY-NC-ND-4.0 is a double disqualifier: NonCommercial forbids use in a commercial tool, and NoDerivatives forbids adaptation even with attribution. The LICENSE states the terms were chosen deliberately to prevent appropriation and asks that you contact the maintainer for modified use. Do not vendor entries, descriptions, or the list's ... |
|
|
492
|
+
| [directus/directus](https://github.com/directus/directus) | 36598 | NOASSERTION | cms-ecommerce | EXCLUDED ON LICENSE. The LICENSE file at the repo root is the "Monospace Sustainable Core License, Version 1.0" (self-abbreviated MSCL-1.0-GPL), fetched and read directly. It grants use only for a "Permitted Purpose", explicitly excluding any "Competing Use", and forbids moving, disabling or circumventing the software's license-key ... |
|
|
493
|
+
| [grafana/loki](https://github.com/grafana/loki) | 28581 | AGPL-3.0 | observability | Added 2026-07-19. AGPL-3.0 confirmed by fetching the LICENSE file from raw.githubusercontent.com, which opens "GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007". Same boundary as grafana/grafana: Loki may be RUN as a container and pointed at by a collector exporter or a Grafana datasource we author ourselves, but no source, ... |
|
|
494
|
+
| [travisvn/awesome-claude-skills](https://github.com/travisvn/awesome-claude-skills) | 14186 | NONE | agent-tooling | No LICENSE file at main or master. A curated list is a compilation and its selection and arrangement are protected; do not copy the list structure or entry descriptions. |
|
|
495
|
+
| [contains-studio/agents](https://github.com/contains-studio/agents) | 12399 | NONE | agent-tooling | No LICENSE file, and effectively abandoned — last push 2025-07-28, roughly a year stale. All-rights-reserved. Do not vendor despite the 12k stars. |
|
|
496
|
+
| [vendurehq/vendure](https://github.com/vendurehq/vendure) | 8255 | GPL-3.0-or-later | cms-ecommerce | EXCLUDED ON LICENSE. `LICENSE.md` on the `master` branch states dual licensing: GPLv3 as the Community Edition by default, or a paid Vendure Commercial License. GPLv3 is copyleft and fails the gate. There is a section-7 additional permission allowing *plugins* to be distributed under a different license, but that exception covers ... |
|
|
497
|
+
| [appcypher/awesome-mcp-servers](https://github.com/appcypher/awesome-mcp-servers) | 5697 | NONE | agent-tooling | No LICENSE file at main or master. Do not copy entries or categorization. |
|
|
498
|
+
| [disler/claude-code-hooks-mastery](https://github.com/disler/claude-code-hooks-mastery) | 3834 | NONE | agent-tooling | No LICENSE file at main or master despite 3.8k stars and constant citation as a template. Its ubiquity in tutorials makes accidental copying likely — flag it explicitly in contributor guidance. |
|
|
499
|
+
| [mgechev/skills-best-practices](https://github.com/mgechev/skills-best-practices) | 2125 | NONE | agent-tooling | No LICENSE file at main. Do not vendor text, checklists, or rule wording from it. |
|
|
500
|
+
| [disler/claude-code-hooks-multi-agent-observability](https://github.com/disler/claude-code-hooks-multi-agent-observability) | 1494 | NONE | agent-tooling | No LICENSE file. Also architecturally heavy (server plus client dashboard) relative to anything a scaffolding tool should emit by default. |
|
|
501
|
+
| [qdhenry/Claude-Command-Suite](https://github.com/qdhenry/Claude-Command-Suite) | 1314 | NONE | agent-tooling | No LICENSE file at main or master. Frequently recommended in blog posts and search results as if it were freely reusable; it is not. |
|
|
502
|
+
| [openobserve/openobserve](https://github.com/openobserve/openobserve) | - | AGPL-3.0 | observability | AGPL-3.0 confirmed by fetching the LICENSE file directly ("GNU AFFERO GENERAL PUBLIC LICENSE Version 3"), upgrading the previous revision's README-based claim to a primary source. A separate commercial Enterprise Edition exists. The license gate excludes it regardless of stars or activity. |
|
|
503
|
+
| [getsentry/sentry](https://github.com/getsentry/sentry) | - | FSL-1.1-Apache-2.0 | observability | LICENSE.md fetched from raw.githubusercontent.com confirms "Functional Source License, Version 1.1, Apache 2.0 Future License". Source-available with a competitive-use restriction, not open source - excluded. This applies to the Sentry SERVER only; the getsentry/sentry-javascript SDK is separately MIT and is promoted in sources above. |
|
|
504
|
+
|
|
505
|
+
Also excluded, recorded in category headers and `droppedCandidates` rather than as full entries:
|
|
506
|
+
|
|
507
|
+
| source | spdx | reason |
|
|
508
|
+
|---|---|---|
|
|
509
|
+
| [semgrep/semgrep-rules](https://github.com/semgrep/semgrep-rules) | Semgrep Rules License v1.0 | API says NOASSERTION. The root LICENSE is a one-line pointer to semgrep.dev/legal/rules-license: use is limited to "your own internal business purposes", and it "does not allow you to distribute the rules, or to make them available to others as a service". Shipping a rule file inside a generated repo **is** distribution. Re-read 2026-07-19 - terms are now *stricter* than the LGPL-2.1 + Commons Clause this catalog previously recorded. The rules read like MIT YAML, which makes this the single most likely mistake in the category; use `github/codeql` (MIT) as the vendorable SAST ruleset instead. |
|
|
510
|
+
| [renovatebot/renovate](https://github.com/renovatebot/renovate) | AGPL-3.0 | The shared config presets everyone cites (`config:recommended`, `:semanticCommits`, the whole `lib/config/presets/internal/` tree) live inside the AGPL repo. *Referencing* a preset by name from your own `renovate.json` is use, not distribution, and is fine. **Inlining a preset body into a layer is not.** The already-built `security-supply-chain` layer must keep its renovate.json a reference-by-name config. |
|
|
511
|
+
| [trufflesecurity/trufflehog](https://github.com/trufflesecurity/trufflehog) | AGPL-3.0 | The sibling tool everyone reflexively pairs with gitleaks, which is exactly how it gets copied by accident. `gitleaks` (MIT) is the vendorable secret-scanning source. |
|
|
512
|
+
| [open-webui/open-webui](https://github.com/open-webui/open-webui) | custom "Open WebUI License" | BSD-3 plus a branding-restriction clause forbidding removal of Open WebUI branding. Not OSI permissive. |
|
|
513
|
+
| [Arize-ai/phoenix](https://github.com/Arize-ai/phoenix) | Elastic License 2.0 | Source-available with a no-managed-service restriction. |
|
|
514
|
+
|
|
515
|
+
### Dead-link warning
|
|
516
|
+
|
|
517
|
+
`jeremylong/DependencyCheck` - the historically cited URL, still the top search result - is now
|
|
518
|
+
**archived at 54 stars** (a stub). The live project is
|
|
519
|
+
[dependency-check/DependencyCheck](https://github.com/dependency-check/DependencyCheck)
|
|
520
|
+
(7,625 stars, Apache-2.0, last commit 2026-07-18). Any catalog entry or blog post pointing at the
|
|
521
|
+
`jeremylong` path is a dead link in practice.
|
|
522
|
+
|
|
523
|
+
### Partial-grant repositories - vendorable, with a hole in them
|
|
524
|
+
|
|
525
|
+
These pass the gate but carve a directory out of their own permissive grant. Copy from them, but never
|
|
526
|
+
from the carved-out path:
|
|
527
|
+
|
|
528
|
+
| source | carve-out |
|
|
529
|
+
|---|---|
|
|
530
|
+
| [BerriAI/litellm](https://github.com/BerriAI/litellm) | MIT **except** the entire `enterprise/` directory, which is outside the grant. |
|
|
531
|
+
| [github/codeql](https://github.com/github/codeql) | Repo code is MIT and the rules are copyable; the CLI/engine ships from `github/codeql-cli-binaries` under separate commercial terms for closed-source analysis and is not redistributable. The `LICENSE.md` visible on the rendered page is a README hyperlink to that other repo, not a second root license. |
|
|
532
|
+
| [goauthentik/authentik](https://github.com/goauthentik/authentik) | Split license, and features drift into `authentik/enterprise/` over time - a path that is MIT today may not be next release. Fenced reference-only for exactly this reason. |
|
|
533
|
+
| [strapi/strapi](https://github.com/strapi/strapi) | MIT Expat only for code outside `ee/` **and** only if you hold no registered account on Strapi Cloud. A grant conditioned on your commercial relationship with the vendor is not a clean MIT. Fenced reference-only. |
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## Attribution
|
|
538
|
+
|
|
539
|
+
Every source below requires its copyright notice and license text to be preserved **if any of its code
|
|
540
|
+
is adapted into a generated repository**. Apache-2.0 additionally requires a NOTICE file to be carried
|
|
541
|
+
forward where the upstream project ships one, and requires that modified files be marked as changed.
|
|
542
|
+
|
|
543
|
+
The mechanical rule for Groundplan: **any layer that vendors code from a source in this section must
|
|
544
|
+
emit a `THIRD-PARTY-NOTICES.md` entry naming the source, its URL, its SPDX id, and the upstream
|
|
545
|
+
copyright line.** MIT and ISC sources carry the same obligation and are far more numerous, so the
|
|
546
|
+
generator should treat notice emission as universal rather than conditional - this section exists
|
|
547
|
+
because Apache-2.0 and BSD add the NOTICE-file and non-endorsement clauses on top.
|
|
548
|
+
|
|
549
|
+
### Apache-2.0 (105) - preserve LICENSE + NOTICE, mark modified files
|
|
550
|
+
|
|
551
|
+
| source | spdx | category |
|
|
552
|
+
|---|---|---|
|
|
553
|
+
| [agentskills/agentskills](https://github.com/agentskills/agentskills) | Apache-2.0 | agent-tooling |
|
|
554
|
+
| [amitshekhariitbhu/go-backend-clean-architecture](https://github.com/amitshekhariitbhu/go-backend-clean-architecture) | Apache-2.0 | backend-api |
|
|
555
|
+
| [anchore/grype](https://github.com/anchore/grype) | Apache-2.0 | security-compliance |
|
|
556
|
+
| [anchore/syft](https://github.com/anchore/syft) | Apache-2.0 | security-compliance |
|
|
557
|
+
| [apache/airflow](https://github.com/apache/airflow) | Apache-2.0 | data-engineering |
|
|
558
|
+
| [apache/iceberg-python](https://github.com/apache/iceberg-python) | Apache-2.0 | data-engineering |
|
|
559
|
+
| [apache/kafka](https://github.com/apache/kafka) | Apache-2.0 | realtime-messaging |
|
|
560
|
+
| [aquasecurity/trivy](https://github.com/aquasecurity/trivy) | Apache-2.0 | security-compliance |
|
|
561
|
+
| [astronomer/astronomer-cosmos](https://github.com/astronomer/astronomer-cosmos) | Apache-2.0 | data-engineering |
|
|
562
|
+
| [atlas](https://github.com/ariga/atlas) | Apache-2.0 | database-orm |
|
|
563
|
+
| [authelia/authelia](https://github.com/authelia/authelia) | Apache-2.0 | auth |
|
|
564
|
+
| [aws-ia/terraform-aws-eks-blueprints](https://github.com/aws-ia/terraform-aws-eks-blueprints) | Apache-2.0 | devops-cicd |
|
|
565
|
+
| [BabylonJS/Babylon.js](https://github.com/BabylonJS/Babylon.js) | Apache-2.0 | game-3d |
|
|
566
|
+
| [boxyhq/saas-starter-kit](https://github.com/boxyhq/saas-starter-kit) | Apache-2.0 | payments-billing |
|
|
567
|
+
| [cachix/devenv](https://github.com/cachix/devenv) | Apache-2.0 | devops-cicd |
|
|
568
|
+
| [casbin/casbin](https://github.com/casbin/casbin) | Apache-2.0 | auth |
|
|
569
|
+
| [ccplugins/awesome-claude-code-plugins](https://github.com/ccplugins/awesome-claude-code-plugins) | Apache-2.0 | agent-tooling |
|
|
570
|
+
| [centrifugal/centrifugo](https://github.com/centrifugal/centrifugo) | Apache-2.0 | realtime-messaging |
|
|
571
|
+
| [chroma-core/chroma](https://github.com/chroma-core/chroma) | Apache-2.0 | ai-llm |
|
|
572
|
+
| [confident-ai/deepeval](https://github.com/confident-ai/deepeval) | Apache-2.0 | ai-llm |
|
|
573
|
+
| [coroot/coroot](https://github.com/coroot/coroot) | Apache-2.0 | observability |
|
|
574
|
+
| [cyanheads/git-mcp-server](https://github.com/cyanheads/git-mcp-server) | Apache-2.0 | agent-tooling |
|
|
575
|
+
| [CycloneDX/specification](https://github.com/CycloneDX/specification) | Apache-2.0 | security-compliance |
|
|
576
|
+
| [dagster-io/dagster](https://github.com/dagster-io/dagster) | Apache-2.0 | data-engineering |
|
|
577
|
+
| [Dapper](https://github.com/DapperLib/Dapper) | Apache-2.0 | database-orm |
|
|
578
|
+
| [dbt-labs/dbt-project-evaluator](https://github.com/dbt-labs/dbt-project-evaluator) | Apache-2.0 | data-engineering |
|
|
579
|
+
| [dbt-labs/dbt-utils](https://github.com/dbt-labs/dbt-utils) | Apache-2.0 | data-engineering |
|
|
580
|
+
| [dbt-labs/jaffle_shop_duckdb](https://github.com/dbt-labs/jaffle_shop_duckdb) | Apache-2.0 | data-engineering |
|
|
581
|
+
| [debezium/debezium](https://github.com/debezium/debezium) | Apache-2.0 | data-engineering |
|
|
582
|
+
| [delta-io/delta-rs](https://github.com/delta-io/delta-rs) | Apache-2.0 | data-engineering |
|
|
583
|
+
| [dlt-hub/dlt](https://github.com/dlt-hub/dlt) | Apache-2.0 | data-engineering |
|
|
584
|
+
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | Apache-2.0 | database-orm |
|
|
585
|
+
| [duckdb/dbt-duckdb](https://github.com/duckdb/dbt-duckdb) | Apache-2.0 | data-engineering |
|
|
586
|
+
| [elementary-data/elementary](https://github.com/elementary-data/elementary) | Apache-2.0 | data-engineering |
|
|
587
|
+
| [fivetran/great_expectations](https://github.com/fivetran/great_expectations) | Apache-2.0 | data-engineering |
|
|
588
|
+
| [fluxcd/flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example) | Apache-2.0 | devops-cicd |
|
|
589
|
+
| [google/slo-generator](https://github.com/google/slo-generator) | Apache-2.0 | observability |
|
|
590
|
+
| [grafana/alloy](https://github.com/grafana/alloy) | Apache-2.0 | observability |
|
|
591
|
+
| [grafana/docker-otel-lgtm](https://github.com/grafana/docker-otel-lgtm) | Apache-2.0 | observability |
|
|
592
|
+
| [hellofresh/health-go](https://github.com/hellofresh/health-go) | Apache-2.0 | observability |
|
|
593
|
+
| [hynek/structlog](https://github.com/hynek/structlog) | Apache-2.0 OR MIT | observability |
|
|
594
|
+
| [jaegertracing/jaeger](https://github.com/jaegertracing/jaeger) | Apache-2.0 | observability |
|
|
595
|
+
| [juspay/hyperswitch](https://github.com/juspay/hyperswitch) | Apache-2.0 | payments-billing |
|
|
596
|
+
| [keycloak/keycloak](https://github.com/keycloak/keycloak) | Apache-2.0 | auth |
|
|
597
|
+
| [killbill/killbill](https://github.com/killbill/killbill) | Apache-2.0 | payments-billing |
|
|
598
|
+
| [micrometer-metrics/micrometer](https://github.com/micrometer-metrics/micrometer) | Apache-2.0 | observability |
|
|
599
|
+
| [microsoft/playwright](https://github.com/microsoft/playwright) | Apache-2.0 | testing |
|
|
600
|
+
| [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp) | Apache-2.0 | agent-tooling |
|
|
601
|
+
| [modelcontextprotocol/registry](https://github.com/modelcontextprotocol/registry) | Apache-2.0 | agent-tooling |
|
|
602
|
+
| [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) | Apache-2.0 | agent-tooling |
|
|
603
|
+
| [modelcontextprotocol/typescript-sdk](https://github.com/modelcontextprotocol/typescript-sdk) | Apache-2.0 | agent-tooling, ai-llm |
|
|
604
|
+
| [nats-io/nats.go](https://github.com/nats-io/nats.go) | Apache-2.0 | realtime-messaging |
|
|
605
|
+
| [nedbat/coveragepy](https://github.com/nedbat/coveragepy) | Apache-2.0 | testing |
|
|
606
|
+
| [open-policy-agent/conftest](https://github.com/open-policy-agent/conftest) | Apache-2.0 | security-compliance |
|
|
607
|
+
| [open-telemetry/opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib) | Apache-2.0 | observability |
|
|
608
|
+
| [open-telemetry/opentelemetry-collector-releases](https://github.com/open-telemetry/opentelemetry-collector-releases) | Apache-2.0 | observability |
|
|
609
|
+
| [open-telemetry/opentelemetry-demo](https://github.com/open-telemetry/opentelemetry-demo) | Apache-2.0 | observability |
|
|
610
|
+
| [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) | Apache-2.0 | observability |
|
|
611
|
+
| [open-telemetry/opentelemetry-dotnet-contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | Apache-2.0 | observability |
|
|
612
|
+
| [open-telemetry/opentelemetry-go](https://github.com/open-telemetry/opentelemetry-go) | Apache-2.0 | observability |
|
|
613
|
+
| [open-telemetry/opentelemetry-go-contrib](https://github.com/open-telemetry/opentelemetry-go-contrib) | Apache-2.0 | observability |
|
|
614
|
+
| [open-telemetry/opentelemetry-java-instrumentation](https://github.com/open-telemetry/opentelemetry-java-instrumentation) | Apache-2.0 | observability |
|
|
615
|
+
| [open-telemetry/opentelemetry-js](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 | observability |
|
|
616
|
+
| [open-telemetry/opentelemetry-js-contrib](https://github.com/open-telemetry/opentelemetry-js-contrib) | Apache-2.0 | observability |
|
|
617
|
+
| [open-telemetry/opentelemetry-python](https://github.com/open-telemetry/opentelemetry-python) | Apache-2.0 | observability |
|
|
618
|
+
| [open-telemetry/opentelemetry-python-contrib](https://github.com/open-telemetry/opentelemetry-python-contrib) | Apache-2.0 | observability |
|
|
619
|
+
| [openfga/openfga](https://github.com/openfga/openfga) | Apache-2.0 | auth |
|
|
620
|
+
| [openiddict/openiddict-core](https://github.com/openiddict/openiddict-core) | Apache-2.0 | auth |
|
|
621
|
+
| [openmeterio/openmeter](https://github.com/openmeterio/openmeter) | Apache-2.0 | payments-billing |
|
|
622
|
+
| [OpenSLO/OpenSLO](https://github.com/OpenSLO/OpenSLO) | Apache-2.0 | observability |
|
|
623
|
+
| [ory/hydra](https://github.com/ory/hydra) | Apache-2.0 | auth |
|
|
624
|
+
| [ory/kratos](https://github.com/ory/kratos) | Apache-2.0 | auth |
|
|
625
|
+
| [oscal-compass/compliance-trestle](https://github.com/oscal-compass/compliance-trestle) | Apache-2.0 | security-compliance |
|
|
626
|
+
| [ossf/scorecard](https://github.com/ossf/scorecard) | Apache-2.0 | security-compliance |
|
|
627
|
+
| [polarsource/polar](https://github.com/polarsource/polar) | Apache-2.0 | payments-billing |
|
|
628
|
+
| [powersync-ja/powersync-js](https://github.com/powersync-ja/powersync-js) | Apache-2.0 | mobile-desktop |
|
|
629
|
+
| [PrefectHQ/fastmcp](https://github.com/PrefectHQ/fastmcp) | Apache-2.0 | ai-llm |
|
|
630
|
+
| [prisma-examples](https://github.com/prisma/prisma-examples) | Apache-2.0 | database-orm |
|
|
631
|
+
| [prometheus-operator/kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) | Apache-2.0 | devops-cicd, observability |
|
|
632
|
+
| [prometheus/client_golang](https://github.com/prometheus/client_golang) | Apache-2.0 | observability |
|
|
633
|
+
| [prometheus/prometheus](https://github.com/prometheus/prometheus) | Apache-2.0 | observability |
|
|
634
|
+
| [pyrra-dev/pyrra](https://github.com/pyrra-dev/pyrra) | Apache-2.0 | observability |
|
|
635
|
+
| [qdrant/qdrant](https://github.com/qdrant/qdrant) | Apache-2.0 | ai-llm |
|
|
636
|
+
| [serilog/serilog](https://github.com/serilog/serilog) | Apache-2.0 | observability |
|
|
637
|
+
| [sigstore/cosign](https://github.com/sigstore/cosign) | Apache-2.0 | security-compliance |
|
|
638
|
+
| [sigstore/gitsign](https://github.com/sigstore/gitsign) | Apache-2.0 | security-compliance |
|
|
639
|
+
| [slok/sloth](https://github.com/slok/sloth) | Apache-2.0 | observability |
|
|
640
|
+
| [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) | Apache-2.0 | devops-cicd, security-compliance |
|
|
641
|
+
| [SQLMesh/sqlmesh](https://github.com/SQLMesh/sqlmesh) | Apache-2.0 | data-engineering |
|
|
642
|
+
| [stefanprodan/podinfo](https://github.com/stefanprodan/podinfo) | Apache-2.0 | devops-cicd |
|
|
643
|
+
| [step-security/harden-runner](https://github.com/step-security/harden-runner) | Apache-2.0 | security-compliance |
|
|
644
|
+
| [stryker-mutator/stryker-js](https://github.com/stryker-mutator/stryker-js) | Apache-2.0 | testing |
|
|
645
|
+
| [supabase](https://github.com/supabase/supabase) | Apache-2.0 | database-orm, fullstack-saas |
|
|
646
|
+
| [supabase/realtime](https://github.com/supabase/realtime) | Apache-2.0 | realtime-messaging |
|
|
647
|
+
| [tauri-apps/create-tauri-app](https://github.com/tauri-apps/create-tauri-app) | Apache-2.0 | mobile-desktop |
|
|
648
|
+
| [terraform-aws-modules/terraform-aws-eks](https://github.com/terraform-aws-modules/terraform-aws-eks) | Apache-2.0 | devops-cicd |
|
|
649
|
+
| [terraform-aws-modules/terraform-aws-vpc](https://github.com/terraform-aws-modules/terraform-aws-vpc) | Apache-2.0 | devops-cicd |
|
|
650
|
+
| [TheBevyFlock/bevy_new_2d](https://github.com/TheBevyFlock/bevy_new_2d) | MIT OR Apache-2.0 OR CC0-1.0 | game-3d |
|
|
651
|
+
| [tremorlabs/tremor](https://github.com/tremorlabs/tremor) | Apache-2.0 | frontend-ui |
|
|
652
|
+
| [triggerdotdev/trigger.dev](https://github.com/triggerdotdev/trigger.dev) | Apache-2.0 | realtime-messaging |
|
|
653
|
+
| [useautumn/autumn](https://github.com/useautumn/autumn) | Apache-2.0 | payments-billing |
|
|
654
|
+
| [vercel/ai](https://github.com/vercel/ai) | Apache-2.0 | ai-llm |
|
|
655
|
+
| [vercel/chatbot](https://github.com/vercel/chatbot) | Apache-2.0 | ai-llm |
|
|
656
|
+
| [Xabaril/AspNetCore.Diagnostics.HealthChecks](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks) | Apache-2.0 | observability |
|
|
657
|
+
| [xunit/xunit](https://github.com/xunit/xunit) | Apache-2.0 | testing |
|
|
658
|
+
|
|
659
|
+
### BSD (7) - preserve copyright notice + non-endorsement clause
|
|
660
|
+
|
|
661
|
+
| source | spdx | category |
|
|
662
|
+
|---|---|---|
|
|
663
|
+
| [celery/celery](https://github.com/celery/celery) | BSD-3-Clause | realtime-messaging |
|
|
664
|
+
| [ComplianceAsCode/content](https://github.com/ComplianceAsCode/content) | BSD-3-Clause | security-compliance |
|
|
665
|
+
| [flutter/samples](https://github.com/flutter/samples) | BSD-3-Clause | mobile-desktop |
|
|
666
|
+
| [lucia-auth/lucia](https://github.com/lucia-auth/lucia) | MIT AND 0BSD | auth |
|
|
667
|
+
| [saleor/saleor](https://github.com/saleor/saleor) | BSD-3-Clause | cms-ecommerce |
|
|
668
|
+
| [saleor/saleor-dashboard](https://github.com/saleor/saleor-dashboard) | BSD-3-Clause | cms-ecommerce |
|
|
669
|
+
| [sysid/sse-starlette](https://github.com/sysid/sse-starlette) | BSD-3-Clause | realtime-messaging |
|
|
670
|
+
|
|
671
|
+
### Zero-attribution sources
|
|
672
|
+
|
|
673
|
+
These carry no attribution burden at all and are the cheapest things in the catalog to copy:
|
|
674
|
+
|
|
675
|
+
- [docker/awesome-compose](https://github.com/docker/awesome-compose) - CC0-1.0
|
|
676
|
+
- [dotnize/react-tanstarter](https://github.com/dotnize/react-tanstarter) - Unlicense
|
|
677
|
+
- [ithiria894/awesome-claude-code-hooks](https://github.com/ithiria894/awesome-claude-code-hooks) - CC0-1.0
|
|
678
|
+
- [PatrickJS/awesome-cursorrules](https://github.com/PatrickJS/awesome-cursorrules) - CC0-1.0
|
|
679
|
+
- [sanjeed5/awesome-cursor-rules-mdc](https://github.com/sanjeed5/awesome-cursor-rules-mdc) - CC0-1.0
|
|
680
|
+
|
|
681
|
+
### Non-allowlist SPDX ids that were admitted
|
|
682
|
+
|
|
683
|
+
Three vendorable entries carry an SPDX id that is not literally on the allowlist. Each was read and
|
|
684
|
+
judged equivalent; recorded here so the exception is visible rather than silent:
|
|
685
|
+
|
|
686
|
+
- **[pgvector/pgvector](https://github.com/pgvector/pgvector) - `PostgreSQL`.** The PostgreSQL License is a two-clause permissive license, textually an ISC/BSD-2 variant, OSI-approved. Treated as vendorable.
|
|
687
|
+
- **[lucia-auth/lucia](https://github.com/lucia-auth/lucia) - `MIT AND 0BSD`.** Both halves are on the allowlist; the conjunction is stricter than either alone and still passes.
|
|
688
|
+
- **[TheBevyFlock/bevy_new_2d](https://github.com/TheBevyFlock/bevy_new_2d) - `MIT OR Apache-2.0 OR CC0-1.0`,** and **[hynek/structlog](https://github.com/hynek/structlog) - `Apache-2.0 OR MIT`.** Disjunctions: the consumer picks. Take MIT for bevy_new_2d and structlog to minimise the notice burden, and record which arm was chosen in THIRD-PARTY-NOTICES.md - an unrecorded choice is not a choice.
|
|
689
|
+
|
|
690
|
+
---
|
|
691
|
+
|
|
692
|
+
## Method and its limits
|
|
693
|
+
|
|
694
|
+
- License class for every entry was set by **fetching and reading the raw LICENSE text**, not by trusting the API's `license.spdx_id`. Prior passes found six repos whose text contradicted the API, including a 50k-star collection that is CC-BY-NC-ND and a 162k-star repo with no root LICENSE at all. Both are in the excluded table above.
|
|
695
|
+
- **Known gap in provenance:** the unauthenticated `api.github.com` budget (60 req/hr per IP) was exhausted during several passes by concurrent sibling workflows on the same IP. For those entries `stars` and `archived` come from the server-rendered github.com repo page and `lastCommit` from `github.com/{repo}/commits/{branch}.atom`. All are primary GitHub sources, but they are not the REST API. Where both were available they agreed exactly (gitleaks 28198, syft 9254, grype 12589 matched API against HTML). The one field with no HTML equivalent is the API's `disabled` flag, which is therefore unconfirmed for those entries; all of them render and serve files normally, which is inconsistent with being disabled.
|
|
696
|
+
- **MPL detection ordering matters.** A naive text matcher flags MPL-2.0 as AGPL, because the "Secondary License" clause literally names the GNU Affero GPL. `the-nix-way/dev-templates` and `opentofu/opentofu` were both caught by this. Order MPL detection before GNU detection in any automated re-check.
|
|
697
|
+
- A **star count is not a signal of license health**, and in this catalog it is mildly anti-correlated: the four largest excluded repos (162k, 68k, 50k, 14k stars) are excluded precisely because scale let them get away with never adding a LICENSE file.
|