@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,1180 @@
|
|
|
1
|
+
# Groundplan template source catalog — category: agent-tooling
|
|
2
|
+
#
|
|
3
|
+
# Research date: 2026-07-19
|
|
4
|
+
#
|
|
5
|
+
# SCOPE
|
|
6
|
+
# -----
|
|
7
|
+
# Open-source collections of AI agent skills, slash-commands, hooks, subagents, MCP servers,
|
|
8
|
+
# AGENTS.md exemplars, editor-rule collections, and spec-driven workflow kits — assessed for
|
|
9
|
+
# whether their content can be adapted into Groundplan's registry.
|
|
10
|
+
#
|
|
11
|
+
# PROVENANCE / VERIFICATION NOTES
|
|
12
|
+
# --------------------------------
|
|
13
|
+
# Every repo below was resolved through GET https://api.github.com/repos/{owner}/{repo}.
|
|
14
|
+
# `stars` = stargazers_count, `lastCommit` = pushed_at (date part), `maintained` folds in
|
|
15
|
+
# `archived` plus a 6-month recency cutoff (2026-01-19). All 45 entries resolved; no entry
|
|
16
|
+
# below is an unverified guess.
|
|
17
|
+
#
|
|
18
|
+
# Where the API returned `license.spdx_id: "NOASSERTION"` or `null`, the actual LICENSE text was
|
|
19
|
+
# read from raw.githubusercontent.com before classifying. That step changed the answer six times
|
|
20
|
+
# and is the single most important part of this file:
|
|
21
|
+
#
|
|
22
|
+
# * hesreallyhim/awesome-claude-code (50k stars, THE canonical Claude Code list) is
|
|
23
|
+
# CC-BY-NC-ND-4.0. NonCommercial AND NoDerivatives. -> excluded. Cannot be vendored,
|
|
24
|
+
# cannot be adapted, cannot ship in a commercial tool. Its LICENSE says so explicitly and
|
|
25
|
+
# invites contact for modified use. Do not let its ubiquity imply permission.
|
|
26
|
+
# * anthropics/skills (162k stars) has NO repo-level LICENSE file. The README claims Apache-2.0
|
|
27
|
+
# for most skills, but no Apache LICENSE file exists at the repo root, at spec/, at skills/,
|
|
28
|
+
# or in the sampled skill dirs. Meanwhile skills/pdf/LICENSE.txt is explicitly
|
|
29
|
+
# source-available and says users "may not ... reproduce or copy these materials".
|
|
30
|
+
# -> excluded at repo level. Read it, never vendor it.
|
|
31
|
+
# * modelcontextprotocol/{servers,registry,typescript-sdk} report NOASSERTION because their
|
|
32
|
+
# LICENSE opens with a transition notice: the project is relicensing MIT -> Apache-2.0, and
|
|
33
|
+
# un-consented contributions REMAIN MIT. Both arms are permissive, so -> vendorable, but the
|
|
34
|
+
# file is a dual-license notice, not plain Apache-2.0. Attribute accordingly.
|
|
35
|
+
# * bmad-code-org/BMAD-METHOD reports NOASSERTION only because its MIT text has a contributor
|
|
36
|
+
# -attribution paragraph spliced in above the grant. It is MIT. -> vendorable.
|
|
37
|
+
# * brennercruvinel/CCPlugins returned an empty body from /repos on three separate attempts at
|
|
38
|
+
# different points in the rate-limit window. Its fields come from other PRIMARY GitHub
|
|
39
|
+
# sources: raw LICENSE (MIT), the repo page (2.7k stars, not archived), and
|
|
40
|
+
# commits/main.atom (2025-10-07). Reconcile against /repos on a later pass.
|
|
41
|
+
#
|
|
42
|
+
# The recurring failure mode in this ecosystem is the unlicensed mega-list. Six popular
|
|
43
|
+
# collections — travisvn/awesome-claude-skills (14k), ComposioHQ/awesome-claude-skills (68k),
|
|
44
|
+
# contains-studio/agents (12k), qdhenry/Claude-Command-Suite, appcypher/awesome-mcp-servers,
|
|
45
|
+
# disler/claude-code-hooks-mastery — ship no LICENSE file at all. Absence of a license is
|
|
46
|
+
# all-rights-reserved, not public domain. They are listed here as `excluded` deliberately, so a
|
|
47
|
+
# later pass does not rediscover them and assume nobody checked.
|
|
48
|
+
#
|
|
49
|
+
# TOOL-AGNOSTIC vs VENDOR-LOCKED: see the `portability` field on each entry.
|
|
50
|
+
# agnostic | claude-only | copilot-only | cursor-only | mcp-protocol
|
|
51
|
+
# Groundplan compiles outward to 14 tools, so `agnostic` and `mcp-protocol` sources are worth
|
|
52
|
+
# multiples of a claude-only source of the same star count.
|
|
53
|
+
|
|
54
|
+
category: agent-tooling
|
|
55
|
+
|
|
56
|
+
sources:
|
|
57
|
+
# ---------------------------------------------------------------- standards & specs
|
|
58
|
+
|
|
59
|
+
- name: agentskills/agentskills
|
|
60
|
+
url: https://github.com/agentskills/agentskills
|
|
61
|
+
stars: 23184
|
|
62
|
+
spdx: Apache-2.0
|
|
63
|
+
licenseClass: vendorable
|
|
64
|
+
maintained: true
|
|
65
|
+
lastCommit: "2026-07-10"
|
|
66
|
+
category: skill-spec
|
|
67
|
+
portability: agnostic
|
|
68
|
+
whatToBorrow: >-
|
|
69
|
+
The normative Agent Skills specification — docs/specification.mdx. This is the single most
|
|
70
|
+
load-bearing document for Groundplan's skill layer, and it is Apache-2.0, unlike Anthropic's
|
|
71
|
+
own skills repo. Borrow the frontmatter contract verbatim: only `name` and `description` are
|
|
72
|
+
required; `name` is max 64 chars, lowercase/digits/hyphen only, no leading or trailing
|
|
73
|
+
hyphen, and MUST equal the parent directory name; `description` is max 1024 chars and
|
|
74
|
+
non-empty. Critically, spec-compliant runtimes MUST ignore unrecognized frontmatter keys —
|
|
75
|
+
that forward-compat rule is what lets Groundplan emit tool-specific keys into the same
|
|
76
|
+
SKILL.md without breaking other runtimes. Optional `license` and `metadata` (free-form
|
|
77
|
+
key-value) fields give us somewhere legitimate to stamp provenance on every emitted skill.
|
|
78
|
+
whatToAvoid: >-
|
|
79
|
+
The spec is deliberately minimal — it standardizes the envelope, not the content. It says
|
|
80
|
+
nothing about tool permissions, model selection, or invocation triggers, so do not expect it
|
|
81
|
+
to resolve those; each of the 14 targets still needs its own mapping layer.
|
|
82
|
+
proposedRegistryItems:
|
|
83
|
+
- skill-frontmatter-schema
|
|
84
|
+
- skill-name-validator
|
|
85
|
+
- skill-scaffold
|
|
86
|
+
- skill-lint
|
|
87
|
+
|
|
88
|
+
- name: anthropics/skills
|
|
89
|
+
url: https://github.com/anthropics/skills
|
|
90
|
+
stars: 162394
|
|
91
|
+
spdx: NONE
|
|
92
|
+
licenseClass: excluded
|
|
93
|
+
maintained: true
|
|
94
|
+
lastCommit: "2026-07-17"
|
|
95
|
+
category: skill-collection
|
|
96
|
+
portability: agnostic
|
|
97
|
+
# Excluded on the hard rule: no repo-level LICENSE. See header for the full trace.
|
|
98
|
+
whatToBorrow: >-
|
|
99
|
+
Nothing may be copied. Read-only value: spec/agent-skills-spec.md is the reference copy of
|
|
100
|
+
the same spec published Apache-2.0 at agentskills/agentskills — take the spec from there
|
|
101
|
+
instead. template/SKILL.md confirms the minimal authored shape is a three-key frontmatter
|
|
102
|
+
(name, description) plus free-form markdown body, which is a fact about the format, not
|
|
103
|
+
copyrightable expression.
|
|
104
|
+
whatToAvoid: >-
|
|
105
|
+
Do not vendor any file. The README's "most skills are Apache 2.0" claim is not backed by an
|
|
106
|
+
Apache LICENSE file anywhere we could find, and skills/docx, skills/pdf, skills/pptx and
|
|
107
|
+
skills/xlsx carry an explicit source-available LICENSE.txt forbidding extraction, copying,
|
|
108
|
+
and retention outside Anthropic's services. Treat the whole repo as all-rights-reserved
|
|
109
|
+
until Anthropic adds a root LICENSE.
|
|
110
|
+
proposedRegistryItems: []
|
|
111
|
+
|
|
112
|
+
- name: agentsmd/agents.md
|
|
113
|
+
url: https://github.com/agentsmd/agents.md
|
|
114
|
+
stars: 23086
|
|
115
|
+
spdx: MIT
|
|
116
|
+
licenseClass: vendorable
|
|
117
|
+
maintained: true
|
|
118
|
+
lastCommit: "2026-03-12"
|
|
119
|
+
category: agents-md
|
|
120
|
+
portability: agnostic
|
|
121
|
+
whatToBorrow: >-
|
|
122
|
+
The AGENTS.md format definition and its worked examples from README.md. The value is the
|
|
123
|
+
conventions, not the prose: a single root AGENTS.md, nested AGENTS.md files in subdirectories
|
|
124
|
+
where the nearest-ancestor file wins, and the canonical section set (setup commands, test
|
|
125
|
+
instructions, code style, PR/commit conventions). Groundplan should emit exactly this
|
|
126
|
+
section set as its lowest-common-denominator target, because it is the one artifact all 14
|
|
127
|
+
tools read natively.
|
|
128
|
+
whatToAvoid: >-
|
|
129
|
+
The repo is mostly a Next.js marketing site for agents.md; do not mistake site source for
|
|
130
|
+
spec content. The format is intentionally unstructured markdown with no schema and no
|
|
131
|
+
validator, so do not build a strict parser against it — treat AGENTS.md as generated output,
|
|
132
|
+
never as a source of truth to round-trip.
|
|
133
|
+
proposedRegistryItems:
|
|
134
|
+
- agents-md-base
|
|
135
|
+
- agents-md-setup-commands
|
|
136
|
+
- agents-md-test-instructions
|
|
137
|
+
- agents-md-code-style
|
|
138
|
+
- agents-md-pr-conventions
|
|
139
|
+
- agents-md-nested-scoping
|
|
140
|
+
|
|
141
|
+
# ---------------------------------------------------------------- skill collections
|
|
142
|
+
|
|
143
|
+
- name: obra/superpowers
|
|
144
|
+
url: https://github.com/obra/superpowers
|
|
145
|
+
stars: 257066
|
|
146
|
+
spdx: MIT
|
|
147
|
+
licenseClass: vendorable
|
|
148
|
+
maintained: true
|
|
149
|
+
lastCommit: "2026-07-17"
|
|
150
|
+
category: skill-collection
|
|
151
|
+
portability: agnostic
|
|
152
|
+
whatToBorrow: >-
|
|
153
|
+
The highest-value vendorable skills collection found, and one of very few that already ships
|
|
154
|
+
per-harness installers for Claude Code, Codex CLI, Cursor, OpenCode, Antigravity, Factory
|
|
155
|
+
Droid, Copilot CLI, Kimi Code and Pi — evidence the same skill body survives translation to
|
|
156
|
+
~9 targets. Borrow skills/writing-skills/SKILL.md, which is the repo's own meta-guide to
|
|
157
|
+
authoring skills and the best short statement of the genre we found. Borrow the workflow
|
|
158
|
+
decomposition itself: brainstorming -> design -> implementation-plan -> red/green TDD ->
|
|
159
|
+
finishing-a-development-branch, where the last skill verifies tests then offers
|
|
160
|
+
merge/PR/keep/discard and cleans up the worktree. The .claude-plugin/plugin.json manifest is
|
|
161
|
+
a compact model for how a bundle declares its own contents.
|
|
162
|
+
whatToAvoid: >-
|
|
163
|
+
Heavily opinionated methodology — strict TDD, YAGNI, DRY — that is presented as
|
|
164
|
+
non-negotiable; ship it as an opt-in profile, never as Groundplan's default. Skills assume a
|
|
165
|
+
git-worktree-per-task workflow that will confuse users on trunk-based or non-git setups.
|
|
166
|
+
Some content is commercial funnel (hiring notices, Prime Radiant links, telemetry section);
|
|
167
|
+
strip before vendoring.
|
|
168
|
+
proposedRegistryItems:
|
|
169
|
+
- skill-writing-skills
|
|
170
|
+
- workflow-brainstorming
|
|
171
|
+
- workflow-design-doc
|
|
172
|
+
- workflow-implementation-plan
|
|
173
|
+
- workflow-tdd-red-green
|
|
174
|
+
- workflow-finish-branch
|
|
175
|
+
- plugin-manifest-json
|
|
176
|
+
|
|
177
|
+
- name: obra/superpowers-skills
|
|
178
|
+
url: https://github.com/obra/superpowers-skills
|
|
179
|
+
stars: 727
|
|
180
|
+
spdx: MIT
|
|
181
|
+
licenseClass: vendorable
|
|
182
|
+
maintained: false
|
|
183
|
+
lastCommit: "2025-10-14"
|
|
184
|
+
category: skill-collection
|
|
185
|
+
portability: agnostic
|
|
186
|
+
# ARCHIVED. Content folded back into obra/superpowers; kept for license-clean provenance only.
|
|
187
|
+
whatToBorrow: >-
|
|
188
|
+
Only useful as a frozen, MIT-clean snapshot of community skills at the point the community
|
|
189
|
+
-editable fork was retired. If a skill you want from obra/superpowers has murky contribution
|
|
190
|
+
history, the same file here is a cleaner attribution anchor.
|
|
191
|
+
whatToAvoid: >-
|
|
192
|
+
Archived and read-only since 2025-10-14 — nine months stale against a fast-moving format.
|
|
193
|
+
Never treat as a live upstream; anything here is superseded by obra/superpowers.
|
|
194
|
+
proposedRegistryItems: []
|
|
195
|
+
|
|
196
|
+
- name: obra/superpowers-marketplace
|
|
197
|
+
url: https://github.com/obra/superpowers-marketplace
|
|
198
|
+
stars: 1162
|
|
199
|
+
spdx: MIT
|
|
200
|
+
licenseClass: vendorable
|
|
201
|
+
maintained: true
|
|
202
|
+
lastCommit: "2026-07-02"
|
|
203
|
+
category: plugin-marketplace
|
|
204
|
+
portability: claude-only
|
|
205
|
+
whatToBorrow: >-
|
|
206
|
+
A minimal, readable implementation of the plugin-marketplace manifest — the index format that
|
|
207
|
+
maps plugin ids to source repos and versions. Worth borrowing as the shape of Groundplan's
|
|
208
|
+
own registry index if we ever publish one for consumption by Claude Code's
|
|
209
|
+
`/plugin marketplace add`.
|
|
210
|
+
whatToAvoid: >-
|
|
211
|
+
The marketplace manifest format is Claude-Code-specific and has no analogue in the other 13
|
|
212
|
+
targets; it belongs in an adapter, not the core registry schema. Thin repo — the manifest is
|
|
213
|
+
most of it.
|
|
214
|
+
proposedRegistryItems:
|
|
215
|
+
- marketplace-manifest
|
|
216
|
+
|
|
217
|
+
- name: mgechev/skills-best-practices
|
|
218
|
+
url: https://github.com/mgechev/skills-best-practices
|
|
219
|
+
stars: 2125
|
|
220
|
+
spdx: NONE
|
|
221
|
+
licenseClass: excluded
|
|
222
|
+
maintained: true
|
|
223
|
+
lastCommit: "2026-06-22"
|
|
224
|
+
category: skill-authoring
|
|
225
|
+
portability: agnostic
|
|
226
|
+
whatToBorrow: >-
|
|
227
|
+
Nothing copyable. Read-only: its thesis — write skills that keep the context window lean and
|
|
228
|
+
validate them with an LLM rather than by eye — is a technique worth reimplementing from
|
|
229
|
+
scratch as a Groundplan skill-lint rule. The idea is not the expression.
|
|
230
|
+
whatToAvoid: >-
|
|
231
|
+
No LICENSE file at main. Do not vendor text, checklists, or rule wording from it.
|
|
232
|
+
proposedRegistryItems: []
|
|
233
|
+
|
|
234
|
+
- name: travisvn/awesome-claude-skills
|
|
235
|
+
url: https://github.com/travisvn/awesome-claude-skills
|
|
236
|
+
stars: 14186
|
|
237
|
+
spdx: NONE
|
|
238
|
+
licenseClass: excluded
|
|
239
|
+
maintained: true
|
|
240
|
+
lastCommit: "2026-04-28"
|
|
241
|
+
category: skill-directory
|
|
242
|
+
portability: claude-only
|
|
243
|
+
whatToBorrow: >-
|
|
244
|
+
Nothing. Usable only as a discovery index — follow its outbound links to the underlying
|
|
245
|
+
skill repos and license-check each one independently at its own source.
|
|
246
|
+
whatToAvoid: >-
|
|
247
|
+
No LICENSE file at main or master. A curated list is a compilation and its selection and
|
|
248
|
+
arrangement are protected; do not copy the list structure or entry descriptions.
|
|
249
|
+
proposedRegistryItems: []
|
|
250
|
+
|
|
251
|
+
- name: ComposioHQ/awesome-claude-skills
|
|
252
|
+
url: https://github.com/ComposioHQ/awesome-claude-skills
|
|
253
|
+
stars: 68043
|
|
254
|
+
spdx: NONE
|
|
255
|
+
licenseClass: excluded
|
|
256
|
+
maintained: true
|
|
257
|
+
lastCommit: "2026-05-22"
|
|
258
|
+
category: skill-directory
|
|
259
|
+
portability: claude-only
|
|
260
|
+
whatToBorrow: >-
|
|
261
|
+
Nothing. Discovery only, same as travisvn — chase the links, license-check at the source.
|
|
262
|
+
whatToAvoid: >-
|
|
263
|
+
No LICENSE file despite 68k stars, and it is corporate-maintained, which makes silent
|
|
264
|
+
relicensing or takedown more likely, not less. Do not vendor.
|
|
265
|
+
proposedRegistryItems: []
|
|
266
|
+
|
|
267
|
+
# ---------------------------------------------------------------- curated meta-lists
|
|
268
|
+
|
|
269
|
+
- name: hesreallyhim/awesome-claude-code
|
|
270
|
+
url: https://github.com/hesreallyhim/awesome-claude-code
|
|
271
|
+
stars: 50333
|
|
272
|
+
spdx: CC-BY-NC-ND-4.0
|
|
273
|
+
licenseClass: excluded
|
|
274
|
+
maintained: true
|
|
275
|
+
lastCommit: "2026-07-18"
|
|
276
|
+
category: meta-directory
|
|
277
|
+
portability: claude-only
|
|
278
|
+
# The most-cited list in the ecosystem and the most legally restrictive. Read the header.
|
|
279
|
+
whatToBorrow: >-
|
|
280
|
+
Nothing may be copied or adapted. Read-only: it is the best single map of what exists, and
|
|
281
|
+
its category taxonomy (skills / subagents / slash-commands / hooks / status lines / tooling /
|
|
282
|
+
plugins) is a reasonable sanity check that Groundplan's own registry categories are not
|
|
283
|
+
missing an artifact type. Use it to find repos, then evaluate those repos at their source.
|
|
284
|
+
whatToAvoid: >-
|
|
285
|
+
CC-BY-NC-ND-4.0 is a double disqualifier: NonCommercial forbids use in a commercial tool, and
|
|
286
|
+
NoDerivatives forbids adaptation even with attribution. The LICENSE states the terms were
|
|
287
|
+
chosen deliberately to prevent appropriation and asks that you contact the maintainer for
|
|
288
|
+
modified use. Do not vendor entries, descriptions, or the list's structure. If Groundplan
|
|
289
|
+
wants this content, that is an email, not a git clone.
|
|
290
|
+
proposedRegistryItems: []
|
|
291
|
+
|
|
292
|
+
- name: ccplugins/awesome-claude-code-plugins
|
|
293
|
+
url: https://github.com/ccplugins/awesome-claude-code-plugins
|
|
294
|
+
stars: 882
|
|
295
|
+
spdx: Apache-2.0
|
|
296
|
+
licenseClass: vendorable
|
|
297
|
+
maintained: false
|
|
298
|
+
lastCommit: "2025-10-14"
|
|
299
|
+
category: meta-directory
|
|
300
|
+
portability: claude-only
|
|
301
|
+
whatToBorrow: >-
|
|
302
|
+
The rare permissively-licensed curated list in this space, which makes it the one directory
|
|
303
|
+
whose taxonomy we can actually copy. Its framing — a plugin is a bundle that may contain
|
|
304
|
+
slash commands, subagents, MCP servers, and hooks together — is exactly Groundplan's
|
|
305
|
+
composite-item model and is worth mirroring in the registry schema.
|
|
306
|
+
whatToAvoid: >-
|
|
307
|
+
Nine months stale in an ecosystem that reorganized around Agent Skills in the interim; a
|
|
308
|
+
large share of its links are likely dead or superseded. Verify every entry before use.
|
|
309
|
+
proposedRegistryItems:
|
|
310
|
+
- plugin-bundle-schema
|
|
311
|
+
|
|
312
|
+
# ---------------------------------------------------------------- subagents
|
|
313
|
+
|
|
314
|
+
- name: wshobson/agents
|
|
315
|
+
url: https://github.com/wshobson/agents
|
|
316
|
+
stars: 38023
|
|
317
|
+
spdx: MIT
|
|
318
|
+
licenseClass: vendorable
|
|
319
|
+
maintained: true
|
|
320
|
+
lastCommit: "2026-07-18"
|
|
321
|
+
category: subagent-collection
|
|
322
|
+
portability: agnostic
|
|
323
|
+
# The single most directly relevant source in this file — it already solves our core problem.
|
|
324
|
+
whatToBorrow: >-
|
|
325
|
+
This repo IS a one-source-of-truth-to-many-harnesses compiler, which is Groundplan's exact
|
|
326
|
+
architecture, already load-bearing at 203 agents / 175 skills / 94 plugins. Steal the design
|
|
327
|
+
wholesale. `plugins/` is the single source; each harness gets a generated, idiomatic output
|
|
328
|
+
tree: Claude Code reads native marketplace.json + plugins/; Codex gets
|
|
329
|
+
.agents/plugins/marketplace.json plus plugins/*/.codex-plugin/plugin.json; Cursor gets
|
|
330
|
+
.cursor-plugin/ + .cursor/rules/; OpenCode gets .opencode/{agents,commands,skills}/; Gemini
|
|
331
|
+
CLI gets TOML commands; Copilot gets .copilot/{agents,skills,commands}/. Read
|
|
332
|
+
docs/harnesses.md — it is a published cross-harness capability matrix and records the exact
|
|
333
|
+
deltas we will hit, including Codex's 8 KB per-skill cap, commands having to be downgraded to
|
|
334
|
+
skills on harnesses with no command concept, OpenCode deriving a `permission:` block from a
|
|
335
|
+
`tools:` allowlist, and OpenCode-specific skill-name restrictions. docs/authoring.md is a
|
|
336
|
+
portable-content style guide for writing one body that survives all targets.
|
|
337
|
+
docs/agent-skills.md covers progressive disclosure. The per-plugin layout
|
|
338
|
+
(plugins/<name>/.claude-plugin/plugin.json + agents/ + commands/ + skills/) is a clean
|
|
339
|
+
composite-bundle shape. `make garden` runs drift, dead-link and size-cap detection — that is
|
|
340
|
+
the CI gate Groundplan needs. plugin-eval scores and certifies skill quality
|
|
341
|
+
(`plugin-eval score <path> --depth quick`, `plugin-eval certify <path>`).
|
|
342
|
+
whatToAvoid: >-
|
|
343
|
+
Enormous surface area; do not vendor all 203 agents — most are thin persona wrappers whose
|
|
344
|
+
value does not survive the copy. The three-tier model-assignment convention (tier 2 =
|
|
345
|
+
"inherit") is Claude-pricing-shaped and should not leak into the schema. Some generated
|
|
346
|
+
harness trees are gitignored rather than committed (.codex/skills/, .codex/agents/), so the
|
|
347
|
+
repo alone does not show every output. Bundles an external memory integration (Pensyve) that
|
|
348
|
+
is out of scope.
|
|
349
|
+
proposedRegistryItems:
|
|
350
|
+
- harness-capability-matrix
|
|
351
|
+
- portable-authoring-guide
|
|
352
|
+
- skill-progressive-disclosure
|
|
353
|
+
- adapter-claude-code
|
|
354
|
+
- adapter-codex-cli
|
|
355
|
+
- adapter-cursor
|
|
356
|
+
- adapter-opencode
|
|
357
|
+
- adapter-gemini-cli
|
|
358
|
+
- adapter-copilot
|
|
359
|
+
- skill-size-cap-check
|
|
360
|
+
- registry-drift-check
|
|
361
|
+
- dead-link-check
|
|
362
|
+
- skill-quality-score
|
|
363
|
+
- agent-code-reviewer
|
|
364
|
+
- agent-security-auditor
|
|
365
|
+
|
|
366
|
+
- name: VoltAgent/awesome-claude-code-subagents
|
|
367
|
+
url: https://github.com/VoltAgent/awesome-claude-code-subagents
|
|
368
|
+
stars: 23474
|
|
369
|
+
spdx: MIT
|
|
370
|
+
licenseClass: vendorable
|
|
371
|
+
maintained: true
|
|
372
|
+
lastCommit: "2026-07-10"
|
|
373
|
+
category: subagent-collection
|
|
374
|
+
portability: claude-only
|
|
375
|
+
whatToBorrow: >-
|
|
376
|
+
154 MIT-licensed subagent definitions filed under a stable numbered taxonomy —
|
|
377
|
+
categories/01-core-development/ through categories/09-meta-orchestration/ — where each agent
|
|
378
|
+
is one self-contained markdown file. Concretely useful individual files:
|
|
379
|
+
categories/01-core-development/api-designer.md, backend-developer.md, frontend-developer.md,
|
|
380
|
+
graphql-architect.md, microservices-architect.md, websocket-engineer.md. The numbered-category
|
|
381
|
+
directory convention is a better registry key scheme than flat names because it makes
|
|
382
|
+
ordering and grouping intrinsic to the path. install-agents.sh shows a no-clone install via a
|
|
383
|
+
single curl'd script, and categories/09-meta-orchestration/agent-installer.md is a neat
|
|
384
|
+
trick: an agent whose job is installing other agents.
|
|
385
|
+
whatToAvoid: >-
|
|
386
|
+
Definitions target Claude Code's .claude/agents/ frontmatter directly and will need
|
|
387
|
+
remapping for every other harness. Quality is uneven across 154 files — several are long
|
|
388
|
+
persona prose with little operational instruction. README carries sponsor banners and Discord
|
|
389
|
+
CTAs; strip before vendoring.
|
|
390
|
+
proposedRegistryItems:
|
|
391
|
+
- agent-api-designer
|
|
392
|
+
- agent-backend-developer
|
|
393
|
+
- agent-frontend-developer
|
|
394
|
+
- agent-graphql-architect
|
|
395
|
+
- agent-microservices-architect
|
|
396
|
+
- agent-websocket-engineer
|
|
397
|
+
- agent-category-taxonomy
|
|
398
|
+
- agent-installer
|
|
399
|
+
|
|
400
|
+
- name: 0xfurai/claude-code-subagents
|
|
401
|
+
url: https://github.com/0xfurai/claude-code-subagents
|
|
402
|
+
stars: 961
|
|
403
|
+
spdx: MIT
|
|
404
|
+
licenseClass: vendorable
|
|
405
|
+
maintained: false
|
|
406
|
+
lastCommit: "2025-10-15"
|
|
407
|
+
category: subagent-collection
|
|
408
|
+
portability: claude-only
|
|
409
|
+
whatToBorrow: >-
|
|
410
|
+
100+ narrowly-scoped, one-domain-per-agent definitions. Its useful contribution is
|
|
411
|
+
granularity: agents are scoped to a single language or library rather than a job title, which
|
|
412
|
+
makes them far easier to auto-select and far less likely to overlap than persona agents.
|
|
413
|
+
Worth mining for the scoping convention more than for the files.
|
|
414
|
+
whatToAvoid: >-
|
|
415
|
+
Nine months stale. Heavy overlap with wshobson/agents and VoltAgent — dedupe hard, and prefer
|
|
416
|
+
the maintained sources when the same agent exists in two places.
|
|
417
|
+
proposedRegistryItems:
|
|
418
|
+
- agent-single-domain-scoping
|
|
419
|
+
|
|
420
|
+
- name: lst97/claude-code-sub-agents
|
|
421
|
+
url: https://github.com/lst97/claude-code-sub-agents
|
|
422
|
+
stars: 1619
|
|
423
|
+
spdx: MIT
|
|
424
|
+
licenseClass: vendorable
|
|
425
|
+
maintained: false
|
|
426
|
+
lastCommit: "2025-08-15"
|
|
427
|
+
category: subagent-collection
|
|
428
|
+
portability: claude-only
|
|
429
|
+
whatToBorrow: >-
|
|
430
|
+
A coherent full-stack-oriented agent set assembled for one person's real workflow, which
|
|
431
|
+
makes its inter-agent handoffs more considered than the big scraped collections. Useful as a
|
|
432
|
+
worked example of a small, opinionated agent team rather than a catalog.
|
|
433
|
+
whatToAvoid: >-
|
|
434
|
+
Nearly a year stale and explicitly described as "for personal use" — no stability or breadth
|
|
435
|
+
guarantees. Low marginal value over wshobson/agents.
|
|
436
|
+
proposedRegistryItems: []
|
|
437
|
+
|
|
438
|
+
- name: contains-studio/agents
|
|
439
|
+
url: https://github.com/contains-studio/agents
|
|
440
|
+
stars: 12399
|
|
441
|
+
spdx: NONE
|
|
442
|
+
licenseClass: excluded
|
|
443
|
+
maintained: false
|
|
444
|
+
lastCommit: "2025-07-28"
|
|
445
|
+
category: subagent-collection
|
|
446
|
+
portability: claude-only
|
|
447
|
+
whatToBorrow: >-
|
|
448
|
+
Nothing. Listed so a later pass does not rediscover a popular repo and assume it is usable.
|
|
449
|
+
whatToAvoid: >-
|
|
450
|
+
No LICENSE file, and effectively abandoned — last push 2025-07-28, roughly a year stale.
|
|
451
|
+
All-rights-reserved. Do not vendor despite the 12k stars.
|
|
452
|
+
proposedRegistryItems: []
|
|
453
|
+
|
|
454
|
+
# ---------------------------------------------------------------- slash commands
|
|
455
|
+
|
|
456
|
+
- name: wshobson/commands
|
|
457
|
+
url: https://github.com/wshobson/commands
|
|
458
|
+
stars: 2573
|
|
459
|
+
spdx: MIT
|
|
460
|
+
licenseClass: vendorable
|
|
461
|
+
maintained: false
|
|
462
|
+
lastCommit: "2025-10-12"
|
|
463
|
+
category: command-collection
|
|
464
|
+
portability: claude-only
|
|
465
|
+
whatToBorrow: >-
|
|
466
|
+
57 MIT command definitions split into a genuinely useful two-tier taxonomy: tools/ (42
|
|
467
|
+
single-purpose commands) versus workflows/ (15 multi-agent orchestrations). That
|
|
468
|
+
tool-vs-workflow distinction is the cleanest articulation of command granularity we found and
|
|
469
|
+
should go straight into Groundplan's registry schema. Named commands worth adapting from
|
|
470
|
+
workflows/: feature-development, tdd-cycle, smart-fix, performance-optimization,
|
|
471
|
+
workflow-automate. From tools/: security-scan, api-scaffold, error-trace, compliance-check,
|
|
472
|
+
data-pipeline, slo-implement. The directory-prefix invocation convention
|
|
473
|
+
(/workflows:feature-development, /tools:security-scan) maps namespaces onto directories with
|
|
474
|
+
no extra metadata, and the README documents the flatten-to-remove-prefixes fallback.
|
|
475
|
+
whatToAvoid: >-
|
|
476
|
+
The repo's own README now points users to wshobson/agents as the modern replacement and calls
|
|
477
|
+
this the legacy pattern — treat it as a content quarry, not a live dependency. Nine months
|
|
478
|
+
stale. Commands assume Claude Code's ~/.claude/commands/ layout and $ARGUMENTS semantics.
|
|
479
|
+
proposedRegistryItems:
|
|
480
|
+
- command-tool-vs-workflow-taxonomy
|
|
481
|
+
- command-namespace-by-directory
|
|
482
|
+
- cmd-feature-development
|
|
483
|
+
- cmd-tdd-cycle
|
|
484
|
+
- cmd-smart-fix
|
|
485
|
+
- cmd-performance-optimization
|
|
486
|
+
- cmd-security-scan
|
|
487
|
+
- cmd-api-scaffold
|
|
488
|
+
- cmd-error-trace
|
|
489
|
+
- cmd-compliance-check
|
|
490
|
+
- cmd-slo-implement
|
|
491
|
+
|
|
492
|
+
- name: brennercruvinel/CCPlugins
|
|
493
|
+
url: https://github.com/brennercruvinel/CCPlugins
|
|
494
|
+
stars: 2700
|
|
495
|
+
spdx: MIT
|
|
496
|
+
licenseClass: vendorable
|
|
497
|
+
maintained: false
|
|
498
|
+
lastCommit: "2025-10-07"
|
|
499
|
+
category: command-collection
|
|
500
|
+
portability: claude-only
|
|
501
|
+
# stars/archived from the repo page, lastCommit from commits/main.atom — /repos returned empty.
|
|
502
|
+
whatToBorrow: >-
|
|
503
|
+
A flat commands/ directory of professional-workflow slash commands plus, more usefully, a
|
|
504
|
+
complete install/uninstall story in four scripts — install.py, install.sh, uninstall.py,
|
|
505
|
+
uninstall.sh. Clean uninstall is the part almost every collection in this file skips, and
|
|
506
|
+
Groundplan needs it: a scaffolding tool that cannot cleanly remove what it added is a
|
|
507
|
+
one-way door. Borrow the symmetric install/uninstall contract.
|
|
508
|
+
whatToAvoid: >-
|
|
509
|
+
Explicitly pinned to Claude Code CLI docs v2025.08.01 and last touched 2025-10-07; README
|
|
510
|
+
admits a V2 rewrite is pending because of upstream changes. Command bodies may reference
|
|
511
|
+
deprecated CLI behavior — validate each against current docs before shipping.
|
|
512
|
+
proposedRegistryItems:
|
|
513
|
+
- installer-symmetric-uninstall
|
|
514
|
+
|
|
515
|
+
- name: qdhenry/Claude-Command-Suite
|
|
516
|
+
url: https://github.com/qdhenry/Claude-Command-Suite
|
|
517
|
+
stars: 1314
|
|
518
|
+
spdx: NONE
|
|
519
|
+
licenseClass: excluded
|
|
520
|
+
maintained: true
|
|
521
|
+
lastCommit: "2026-03-01"
|
|
522
|
+
category: command-collection
|
|
523
|
+
portability: claude-only
|
|
524
|
+
whatToBorrow: >-
|
|
525
|
+
Nothing copyable. Read-only observation: it bundles 216+ commands, 54 agents and 12 skills in
|
|
526
|
+
one repo under a /namespace:command-name convention, which corroborates the
|
|
527
|
+
directory-as-namespace pattern already borrowable from the MIT-licensed wshobson/commands.
|
|
528
|
+
Take the pattern from there instead.
|
|
529
|
+
whatToAvoid: >-
|
|
530
|
+
No LICENSE file at main or master. Frequently recommended in blog posts and search results as
|
|
531
|
+
if it were freely reusable; it is not.
|
|
532
|
+
proposedRegistryItems: []
|
|
533
|
+
|
|
534
|
+
- name: Pimzino/claude-code-spec-workflow
|
|
535
|
+
url: https://github.com/Pimzino/claude-code-spec-workflow
|
|
536
|
+
stars: 3798
|
|
537
|
+
spdx: MIT
|
|
538
|
+
licenseClass: vendorable
|
|
539
|
+
maintained: false
|
|
540
|
+
lastCommit: "2025-09-07"
|
|
541
|
+
category: workflow-kit
|
|
542
|
+
portability: claude-only
|
|
543
|
+
whatToBorrow: >-
|
|
544
|
+
An MIT implementation of the requirements -> design -> tasks -> implementation spec chain as
|
|
545
|
+
installable slash commands, with document state persisted to disk between phases. Useful as
|
|
546
|
+
the small, vendorable counterweight to github/spec-kit: same idea, far less machinery, and
|
|
547
|
+
easy to read end to end when deciding how much of spec-kit's architecture Groundplan actually
|
|
548
|
+
needs.
|
|
549
|
+
whatToAvoid: >-
|
|
550
|
+
Ten months stale. Claude-Code-only command format. Overlaps github/spec-kit, which is far
|
|
551
|
+
better maintained and equally MIT — prefer spec-kit unless you specifically want the minimal
|
|
552
|
+
version.
|
|
553
|
+
proposedRegistryItems:
|
|
554
|
+
- workflow-spec-requirements
|
|
555
|
+
- workflow-spec-design
|
|
556
|
+
- workflow-spec-tasks
|
|
557
|
+
|
|
558
|
+
# ---------------------------------------------------------------- hooks & guardrails
|
|
559
|
+
|
|
560
|
+
- name: karanb192/claude-code-hooks
|
|
561
|
+
url: https://github.com/karanb192/claude-code-hooks
|
|
562
|
+
stars: 449
|
|
563
|
+
spdx: MIT
|
|
564
|
+
licenseClass: vendorable
|
|
565
|
+
maintained: true
|
|
566
|
+
lastCommit: "2026-07-18"
|
|
567
|
+
category: hook-collection
|
|
568
|
+
portability: claude-only
|
|
569
|
+
# Best vendorable hook source found: MIT, actively pushed, 1165 passing tests.
|
|
570
|
+
whatToBorrow: >-
|
|
571
|
+
Real, tested, MIT hook scripts with named files rather than blog-post snippets. PreToolUse:
|
|
572
|
+
hook-scripts/pre-tool-use/block-dangerous-commands.js (rm -rf ~, fork bombs, curl|sh),
|
|
573
|
+
protect-secrets.js (blocks reading/modifying/exfiltrating sensitive files across
|
|
574
|
+
Read|Edit|Write|Bash), git-safety.js (branch-aware guardrails plus destructive gh CLI
|
|
575
|
+
protection), and protect-tests.js — which blocks the specific "fake green" failure mode where
|
|
576
|
+
an agent deletes, renames away, or skip/xfail-disables a failing test. PostToolUse:
|
|
577
|
+
auto-stage.js and format-code.js (ruff for Python, prettier for JS/TS/HTML/JSON/MD/YAML).
|
|
578
|
+
Session: session-logger.js, notable for registering PostToolUse with "async": true so logging
|
|
579
|
+
never blocks the agent, serializing concurrent writes with a file lock, and doing best-effort
|
|
580
|
+
secret redaction on captured bash commands. hook-scripts/utils/event-logger.py exists purely
|
|
581
|
+
to dump event payloads so you can discover a hook event's real schema before writing against
|
|
582
|
+
it — Groundplan should ship an equivalent. The async-PostToolUse pattern is the key
|
|
583
|
+
performance lesson: recorders must not sit in the critical path.
|
|
584
|
+
whatToAvoid: >-
|
|
585
|
+
Hook event names, the matcher syntax, and the settings.json wiring are Claude-Code-specific;
|
|
586
|
+
the guard LOGIC is portable but the registration layer is not, so split them in the registry.
|
|
587
|
+
Scripts assume node on PATH and that ruff/prettier are installed. The gamified plugins
|
|
588
|
+
(bounty-board, nerf-receipts, dead-end-registry) are fun but are not core scaffolding.
|
|
589
|
+
proposedRegistryItems:
|
|
590
|
+
- hook-block-dangerous-commands
|
|
591
|
+
- hook-protect-secrets
|
|
592
|
+
- hook-git-safety
|
|
593
|
+
- hook-protect-tests
|
|
594
|
+
- hook-auto-stage
|
|
595
|
+
- hook-format-code
|
|
596
|
+
- hook-session-logger
|
|
597
|
+
- hook-event-payload-logger
|
|
598
|
+
- hook-async-posttooluse-pattern
|
|
599
|
+
|
|
600
|
+
- name: ithiria894/awesome-claude-code-hooks
|
|
601
|
+
url: https://github.com/ithiria894/awesome-claude-code-hooks
|
|
602
|
+
stars: 18
|
|
603
|
+
spdx: CC0-1.0
|
|
604
|
+
licenseClass: vendorable
|
|
605
|
+
maintained: true
|
|
606
|
+
lastCommit: "2026-03-24"
|
|
607
|
+
category: hook-directory
|
|
608
|
+
portability: claude-only
|
|
609
|
+
# 18 stars, but CC0 — public domain. Rare and legally the cleanest list in this file.
|
|
610
|
+
whatToBorrow: >-
|
|
611
|
+
The only hook directory we found that is both curated and CC0, so its taxonomy can be copied
|
|
612
|
+
outright. Its category set is a ready-made spine for Groundplan's hook registry: Security and
|
|
613
|
+
Prompt Injection, Safety and Protection, Monitoring and Observability, Code Quality Gates,
|
|
614
|
+
Context and Memory, Model Routing and Cost, Session Management, File Organization,
|
|
615
|
+
Notification and Alerts, Voice and Sound, Git Integration, Hook SDKs and Frameworks. Entries
|
|
616
|
+
are unusually rigorous for an awesome list — each names the file the hook lives in and the
|
|
617
|
+
event it triggers on. It also surfaces a genuinely important portability finding via
|
|
618
|
+
gstack: hooks declared in SKILL.md frontmatter are ENFORCED in Claude Code but degrade to
|
|
619
|
+
advisory prose in generated Codex skill docs. That asymmetry must be encoded in Groundplan's
|
|
620
|
+
capability matrix or we will silently ship unenforced guardrails.
|
|
621
|
+
whatToAvoid: >-
|
|
622
|
+
18 stars and one maintainer — low bus factor. It is an index of links, so the hooks it points
|
|
623
|
+
at carry their own licenses; CC0 covers the list, not the linked code. License-check each
|
|
624
|
+
target repo separately.
|
|
625
|
+
proposedRegistryItems:
|
|
626
|
+
- hook-category-taxonomy
|
|
627
|
+
- hook-enforcement-vs-advisory-matrix
|
|
628
|
+
- hook-prompt-injection-guard
|
|
629
|
+
- hook-lint-gate
|
|
630
|
+
- hook-model-routing-cost
|
|
631
|
+
- hook-memory-injection
|
|
632
|
+
|
|
633
|
+
- name: mafiaguy/claude-security-guardrails
|
|
634
|
+
url: https://github.com/mafiaguy/claude-security-guardrails
|
|
635
|
+
stars: 2
|
|
636
|
+
spdx: MIT
|
|
637
|
+
licenseClass: vendorable
|
|
638
|
+
maintained: true
|
|
639
|
+
lastCommit: "2026-02-19"
|
|
640
|
+
category: hook-collection
|
|
641
|
+
portability: claude-only
|
|
642
|
+
# 2 stars. Included only because the threat list is concrete and the license is clean.
|
|
643
|
+
whatToBorrow: >-
|
|
644
|
+
The enumerated block-list is the borrowable asset, not the implementation: rm -rf, force
|
|
645
|
+
pushes, leaked API keys, SQL injection, eval(), and ~30 further risky patterns, wired through
|
|
646
|
+
PreToolUse and PostToolUse. Use it as a checklist to test Groundplan's own guard rules
|
|
647
|
+
against for coverage gaps.
|
|
648
|
+
whatToAvoid: >-
|
|
649
|
+
Two stars means essentially zero external review — read every line before adopting any of it,
|
|
650
|
+
and do not present it as a hardened security control. The bundled React monitoring dashboard
|
|
651
|
+
is scope creep for a scaffolding tool. Prefer karanb192/claude-code-hooks, which covers much
|
|
652
|
+
of the same ground with a real test suite.
|
|
653
|
+
proposedRegistryItems:
|
|
654
|
+
- hook-secret-scan
|
|
655
|
+
- hook-block-force-push
|
|
656
|
+
- hook-dangerous-pattern-list
|
|
657
|
+
|
|
658
|
+
- name: disler/claude-code-hooks-mastery
|
|
659
|
+
url: https://github.com/disler/claude-code-hooks-mastery
|
|
660
|
+
stars: 3834
|
|
661
|
+
spdx: NONE
|
|
662
|
+
licenseClass: excluded
|
|
663
|
+
maintained: true
|
|
664
|
+
lastCommit: "2026-03-04"
|
|
665
|
+
category: hook-collection
|
|
666
|
+
portability: claude-only
|
|
667
|
+
whatToBorrow: >-
|
|
668
|
+
Nothing copyable, and this one hurts — it is the de facto teaching reference for the full
|
|
669
|
+
hook lifecycle and is cited everywhere. Read it to understand which events exist and how
|
|
670
|
+
exit codes and JSON output control flow, then implement independently. Take vendorable hook
|
|
671
|
+
code from karanb192/claude-code-hooks instead.
|
|
672
|
+
whatToAvoid: >-
|
|
673
|
+
No LICENSE file at main or master despite 3.8k stars and constant citation as a template.
|
|
674
|
+
Its ubiquity in tutorials makes accidental copying likely — flag it explicitly in
|
|
675
|
+
contributor guidance.
|
|
676
|
+
proposedRegistryItems: []
|
|
677
|
+
|
|
678
|
+
- name: disler/claude-code-hooks-multi-agent-observability
|
|
679
|
+
url: https://github.com/disler/claude-code-hooks-multi-agent-observability
|
|
680
|
+
stars: 1494
|
|
681
|
+
spdx: NONE
|
|
682
|
+
licenseClass: excluded
|
|
683
|
+
maintained: true
|
|
684
|
+
lastCommit: "2026-02-08"
|
|
685
|
+
category: hook-collection
|
|
686
|
+
portability: claude-only
|
|
687
|
+
whatToBorrow: >-
|
|
688
|
+
Nothing copyable. Read-only: it is the clearest demonstration that hooks are a viable
|
|
689
|
+
telemetry bus for multi-agent runs — every lifecycle event streamed to a collector and
|
|
690
|
+
rendered live. If Groundplan wants observability hooks, this shows the shape; build it fresh.
|
|
691
|
+
whatToAvoid: >-
|
|
692
|
+
No LICENSE file. Also architecturally heavy (server plus client dashboard) relative to
|
|
693
|
+
anything a scaffolding tool should emit by default.
|
|
694
|
+
proposedRegistryItems: []
|
|
695
|
+
|
|
696
|
+
# ---------------------------------------------------------------- MCP
|
|
697
|
+
|
|
698
|
+
- name: modelcontextprotocol/servers
|
|
699
|
+
url: https://github.com/modelcontextprotocol/servers
|
|
700
|
+
stars: 88611
|
|
701
|
+
spdx: Apache-2.0
|
|
702
|
+
licenseClass: vendorable
|
|
703
|
+
maintained: true
|
|
704
|
+
lastCommit: "2026-07-10"
|
|
705
|
+
category: mcp-servers
|
|
706
|
+
portability: mcp-protocol
|
|
707
|
+
# API says NOASSERTION; LICENSE is an MIT -> Apache-2.0 transition notice. Both arms permissive.
|
|
708
|
+
whatToBorrow: >-
|
|
709
|
+
The canonical reference servers maintained by the MCP steering group — the authoritative
|
|
710
|
+
implementations of the servers Groundplan should offer by default (filesystem, git, fetch,
|
|
711
|
+
memory, sequential thinking, time). Borrow their tool-definition style: narrow tool surfaces,
|
|
712
|
+
explicit JSON Schema per tool, and path-scoping via allowed-directory arguments rather than
|
|
713
|
+
ambient trust. README.md also carries the community-server index, which is the least
|
|
714
|
+
link-rotted MCP directory available because it sits next to the spec.
|
|
715
|
+
whatToAvoid: >-
|
|
716
|
+
Read the LICENSE preamble before attributing: the project is mid-relicense, and contributions
|
|
717
|
+
whose authors have not consented REMAIN MIT rather than Apache-2.0. Attribute per-file, not
|
|
718
|
+
per-repo. Several once-reference servers have been retired or moved to archive — confirm a
|
|
719
|
+
server is still live before wiring it into a default config.
|
|
720
|
+
proposedRegistryItems:
|
|
721
|
+
- mcp-filesystem
|
|
722
|
+
- mcp-git
|
|
723
|
+
- mcp-fetch
|
|
724
|
+
- mcp-memory
|
|
725
|
+
- mcp-sequential-thinking
|
|
726
|
+
- mcp-time
|
|
727
|
+
- mcp-server-config-base
|
|
728
|
+
|
|
729
|
+
- name: modelcontextprotocol/registry
|
|
730
|
+
url: https://github.com/modelcontextprotocol/registry
|
|
731
|
+
stars: 7044
|
|
732
|
+
spdx: Apache-2.0
|
|
733
|
+
licenseClass: vendorable
|
|
734
|
+
maintained: true
|
|
735
|
+
lastCommit: "2026-07-15"
|
|
736
|
+
category: mcp-registry
|
|
737
|
+
portability: mcp-protocol
|
|
738
|
+
whatToBorrow: >-
|
|
739
|
+
The official registry's server-metadata schema — how an MCP server declares its identity,
|
|
740
|
+
package/runtime, transport, and configuration inputs. If Groundplan emits MCP config for 14
|
|
741
|
+
tools, resolving servers against this schema rather than hand-maintained per-tool JSON is the
|
|
742
|
+
difference between one source of truth and fourteen. Its publish/validate flow is also the
|
|
743
|
+
best available model for how Groundplan would submit or consume registry entries.
|
|
744
|
+
whatToAvoid: >-
|
|
745
|
+
Young and still moving; treat the schema as versioned and pin to a release rather than main.
|
|
746
|
+
Same MIT/Apache transition caveat in the LICENSE as the other MCP repos. It is registry
|
|
747
|
+
infrastructure, not servers — do not expect runnable tools here.
|
|
748
|
+
proposedRegistryItems:
|
|
749
|
+
- mcp-registry-schema
|
|
750
|
+
- mcp-server-resolver
|
|
751
|
+
|
|
752
|
+
- name: modelcontextprotocol/typescript-sdk
|
|
753
|
+
url: https://github.com/modelcontextprotocol/typescript-sdk
|
|
754
|
+
stars: 12884
|
|
755
|
+
spdx: Apache-2.0
|
|
756
|
+
licenseClass: vendorable
|
|
757
|
+
maintained: true
|
|
758
|
+
lastCommit: "2026-07-18"
|
|
759
|
+
category: mcp-sdk
|
|
760
|
+
portability: mcp-protocol
|
|
761
|
+
whatToBorrow: >-
|
|
762
|
+
The SDK Groundplan's own templates should scaffold against for any TypeScript MCP server, and
|
|
763
|
+
the reference for MCP prompts and resources — the two primitives most collections ignore in
|
|
764
|
+
favor of tools. MCP prompts are the closest thing to a protocol-native, vendor-neutral
|
|
765
|
+
slash-command, which makes them strategically important for a registry compiling to 14 tools.
|
|
766
|
+
Borrow the server-bootstrap shape (server construction, transport selection, tool/prompt
|
|
767
|
+
registration) as the skeleton of an mcp-server template.
|
|
768
|
+
whatToAvoid: >-
|
|
769
|
+
Transport APIs have churned across versions (stdio vs SSE vs streamable HTTP); pin the SDK
|
|
770
|
+
version in any emitted template or the scaffold will break under users. Same MIT/Apache
|
|
771
|
+
transition notice.
|
|
772
|
+
proposedRegistryItems:
|
|
773
|
+
- mcp-server-template-ts
|
|
774
|
+
- mcp-prompts-primitive
|
|
775
|
+
- mcp-resources-primitive
|
|
776
|
+
|
|
777
|
+
- name: modelcontextprotocol/python-sdk
|
|
778
|
+
url: https://github.com/modelcontextprotocol/python-sdk
|
|
779
|
+
stars: 23650
|
|
780
|
+
spdx: MIT
|
|
781
|
+
licenseClass: vendorable
|
|
782
|
+
maintained: true
|
|
783
|
+
lastCommit: "2026-07-17"
|
|
784
|
+
category: mcp-sdk
|
|
785
|
+
portability: mcp-protocol
|
|
786
|
+
whatToBorrow: >-
|
|
787
|
+
The Python counterpart, and cleanly MIT with no transition caveat. Its FastMCP-style
|
|
788
|
+
decorator API turns a plain function plus type hints into a schema-complete tool, which is
|
|
789
|
+
the lowest-ceremony MCP server template we can offer Python users. Borrow that as the Python
|
|
790
|
+
mcp-server scaffold.
|
|
791
|
+
whatToAvoid: >-
|
|
792
|
+
The high-level decorator API and the low-level server API coexist and are easy to mix
|
|
793
|
+
incorrectly; pick one for the template and say why. Pin the version — the API has moved.
|
|
794
|
+
proposedRegistryItems:
|
|
795
|
+
- mcp-server-template-python
|
|
796
|
+
|
|
797
|
+
- name: github/github-mcp-server
|
|
798
|
+
url: https://github.com/github/github-mcp-server
|
|
799
|
+
stars: 31532
|
|
800
|
+
spdx: MIT
|
|
801
|
+
licenseClass: vendorable
|
|
802
|
+
maintained: true
|
|
803
|
+
lastCommit: "2026-07-18"
|
|
804
|
+
category: mcp-server
|
|
805
|
+
portability: mcp-protocol
|
|
806
|
+
whatToBorrow: >-
|
|
807
|
+
GitHub's own first-party server and the one every default MCP config should include. Its
|
|
808
|
+
standout borrowable idea is toolset gating — the ability to enable only subsets (repos,
|
|
809
|
+
issues, pull requests, actions, code security) instead of exposing the entire API surface at
|
|
810
|
+
once. That directly addresses tool-count context bloat, which is the main practical failure
|
|
811
|
+
of shipping many MCP servers by default, and Groundplan should expose the same
|
|
812
|
+
enable-a-subset control in emitted configs. Read-only mode is the right default for a
|
|
813
|
+
scaffolded config.
|
|
814
|
+
whatToAvoid: >-
|
|
815
|
+
Requires a PAT or GitHub App credential — emitted config must reference an env var and must
|
|
816
|
+
never inline a token. The full toolset is large enough to crowd a context window on its own;
|
|
817
|
+
never emit it ungated.
|
|
818
|
+
proposedRegistryItems:
|
|
819
|
+
- mcp-github
|
|
820
|
+
- mcp-toolset-gating
|
|
821
|
+
- mcp-readonly-default
|
|
822
|
+
|
|
823
|
+
- name: microsoft/playwright-mcp
|
|
824
|
+
url: https://github.com/microsoft/playwright-mcp
|
|
825
|
+
stars: 35238
|
|
826
|
+
spdx: Apache-2.0
|
|
827
|
+
licenseClass: vendorable
|
|
828
|
+
maintained: true
|
|
829
|
+
lastCommit: "2026-07-15"
|
|
830
|
+
category: mcp-server
|
|
831
|
+
portability: mcp-protocol
|
|
832
|
+
whatToBorrow: >-
|
|
833
|
+
The browser-automation server, and the best worked argument for structured over visual
|
|
834
|
+
context: it drives pages via the accessibility tree rather than screenshots, so it works with
|
|
835
|
+
any model and costs a fraction of the tokens. Include it in any template that scaffolds a web
|
|
836
|
+
app with E2E tests. Its config surface — headless toggle, browser channel, isolated profile,
|
|
837
|
+
allowed origins — is a good model for how a Groundplan-emitted server config should expose
|
|
838
|
+
exactly the knobs that matter and no more.
|
|
839
|
+
whatToAvoid: >-
|
|
840
|
+
Pulls a full browser download; do not put it in a minimal or CI-default profile without
|
|
841
|
+
flagging the footprint. Origin allow-listing must be set deliberately — an unrestricted
|
|
842
|
+
browser tool is a real exfiltration path when combined with prompt injection.
|
|
843
|
+
proposedRegistryItems:
|
|
844
|
+
- mcp-playwright
|
|
845
|
+
- mcp-origin-allowlist
|
|
846
|
+
|
|
847
|
+
- name: crystaldba/postgres-mcp
|
|
848
|
+
url: https://github.com/crystaldba/postgres-mcp
|
|
849
|
+
stars: 3081
|
|
850
|
+
spdx: MIT
|
|
851
|
+
licenseClass: vendorable
|
|
852
|
+
maintained: true
|
|
853
|
+
lastCommit: "2026-01-22"
|
|
854
|
+
category: mcp-server
|
|
855
|
+
portability: mcp-protocol
|
|
856
|
+
whatToBorrow: >-
|
|
857
|
+
The strongest Postgres MCP server now that the reference one is retired, and the right
|
|
858
|
+
default for any template scaffolding Postgres. Two things to borrow beyond the server itself:
|
|
859
|
+
its explicit access-control model with a genuine restricted/read-only mode, which is the
|
|
860
|
+
pattern every database MCP config Groundplan emits should default to; and its analysis
|
|
861
|
+
surface — index tuning, EXPLAIN-plan review with hypothetical indexes, and health checks for
|
|
862
|
+
index bloat, connection utilization, buffer cache, vacuum health, sequence limits and
|
|
863
|
+
replication lag. It also supports both stdio and SSE transports, useful as a two-transport
|
|
864
|
+
config example.
|
|
865
|
+
whatToAvoid: >-
|
|
866
|
+
Six months since last push — the slowest-moving MCP entry here; re-verify before making it a
|
|
867
|
+
default. Unrestricted mode allows arbitrary SQL and must never be the scaffolded default.
|
|
868
|
+
The tuning features are Postgres-specific and do not generalize to other databases.
|
|
869
|
+
proposedRegistryItems:
|
|
870
|
+
- mcp-postgres
|
|
871
|
+
- mcp-db-readonly-mode
|
|
872
|
+
|
|
873
|
+
- name: cyanheads/git-mcp-server
|
|
874
|
+
url: https://github.com/cyanheads/git-mcp-server
|
|
875
|
+
stars: 228
|
|
876
|
+
spdx: Apache-2.0
|
|
877
|
+
licenseClass: vendorable
|
|
878
|
+
maintained: true
|
|
879
|
+
lastCommit: "2026-07-03"
|
|
880
|
+
category: mcp-server
|
|
881
|
+
portability: mcp-protocol
|
|
882
|
+
whatToBorrow: >-
|
|
883
|
+
A maintained, permissively-licensed standalone git MCP server covering the full porcelain
|
|
884
|
+
surface (status, diff, branch, commit, stash, tags, remotes) — useful as the git option in an
|
|
885
|
+
emitted config when the reference server's status is uncertain. Low star count, but the
|
|
886
|
+
license is clean and the push cadence is current.
|
|
887
|
+
whatToAvoid: >-
|
|
888
|
+
228 stars means limited external review; audit before making it a default. Write-capable git
|
|
889
|
+
tools let an agent rewrite history — scope to read-only in scaffolded configs unless the user
|
|
890
|
+
opts in explicitly.
|
|
891
|
+
proposedRegistryItems:
|
|
892
|
+
- mcp-git-standalone
|
|
893
|
+
|
|
894
|
+
- name: punkpeye/awesome-mcp-servers
|
|
895
|
+
url: https://github.com/punkpeye/awesome-mcp-servers
|
|
896
|
+
stars: 90934
|
|
897
|
+
spdx: MIT
|
|
898
|
+
licenseClass: vendorable
|
|
899
|
+
maintained: true
|
|
900
|
+
lastCommit: "2026-07-13"
|
|
901
|
+
category: mcp-directory
|
|
902
|
+
portability: mcp-protocol
|
|
903
|
+
whatToBorrow: >-
|
|
904
|
+
The largest MCP directory that is also MIT, which makes it the one whose categorization we
|
|
905
|
+
can legally reuse. Borrow its category axis and its per-entry legend marking transport
|
|
906
|
+
(stdio/SSE), implementation language, and platform support — those are exactly the facets
|
|
907
|
+
Groundplan needs to filter servers per target tool, and reproducing them costs nothing.
|
|
908
|
+
whatToAvoid: >-
|
|
909
|
+
Scale over selectivity: inclusion signals existence, not quality or maintenance. Never
|
|
910
|
+
promote an entry to a Groundplan default on the strength of its listing here — re-verify
|
|
911
|
+
license, activity and archived status at each server's own repo.
|
|
912
|
+
proposedRegistryItems:
|
|
913
|
+
- mcp-directory-index
|
|
914
|
+
- mcp-transport-facets
|
|
915
|
+
|
|
916
|
+
- name: wong2/awesome-mcp-servers
|
|
917
|
+
url: https://github.com/wong2/awesome-mcp-servers
|
|
918
|
+
stars: 4214
|
|
919
|
+
spdx: MIT
|
|
920
|
+
licenseClass: vendorable
|
|
921
|
+
maintained: true
|
|
922
|
+
lastCommit: "2026-07-13"
|
|
923
|
+
category: mcp-directory
|
|
924
|
+
portability: mcp-protocol
|
|
925
|
+
whatToBorrow: >-
|
|
926
|
+
A deliberately smaller, more curated MIT list. Its value relative to punkpeye is precision:
|
|
927
|
+
use the intersection of the two as a quality signal when picking which servers earn a place
|
|
928
|
+
in a default profile.
|
|
929
|
+
whatToAvoid: >-
|
|
930
|
+
Substantially narrower coverage; do not use it alone for discovery. Same caveat that listing
|
|
931
|
+
is not endorsement.
|
|
932
|
+
proposedRegistryItems: []
|
|
933
|
+
|
|
934
|
+
- name: TensorBlock/awesome-mcp-servers
|
|
935
|
+
url: https://github.com/TensorBlock/awesome-mcp-servers
|
|
936
|
+
stars: 788
|
|
937
|
+
spdx: MIT
|
|
938
|
+
licenseClass: vendorable
|
|
939
|
+
maintained: true
|
|
940
|
+
lastCommit: "2026-07-18"
|
|
941
|
+
category: mcp-directory
|
|
942
|
+
portability: mcp-protocol
|
|
943
|
+
whatToBorrow: >-
|
|
944
|
+
Breadth at machine scale — it indexes roughly 7.7k unique server links, far more than any
|
|
945
|
+
hand-curated list, and it is MIT. Useful specifically as a coverage check: if Groundplan
|
|
946
|
+
believes no MCP server exists for some capability, query this before concluding that.
|
|
947
|
+
whatToAvoid: >-
|
|
948
|
+
Machine-assembled and effectively unfiltered; signal-to-noise is poor and dead links are
|
|
949
|
+
common. Never a source of defaults — only of candidates.
|
|
950
|
+
proposedRegistryItems: []
|
|
951
|
+
|
|
952
|
+
- name: appcypher/awesome-mcp-servers
|
|
953
|
+
url: https://github.com/appcypher/awesome-mcp-servers
|
|
954
|
+
stars: 5697
|
|
955
|
+
spdx: NONE
|
|
956
|
+
licenseClass: excluded
|
|
957
|
+
maintained: true
|
|
958
|
+
lastCommit: "2026-05-06"
|
|
959
|
+
category: mcp-directory
|
|
960
|
+
portability: mcp-protocol
|
|
961
|
+
whatToBorrow: >-
|
|
962
|
+
Nothing. Two MIT-licensed alternatives (punkpeye, wong2) cover the same ground with better
|
|
963
|
+
coverage, so there is no reason to take the risk here.
|
|
964
|
+
whatToAvoid: >-
|
|
965
|
+
No LICENSE file at main or master. Do not copy entries or categorization.
|
|
966
|
+
proposedRegistryItems: []
|
|
967
|
+
|
|
968
|
+
# ---------------------------------------------------------------- AGENTS.md exemplars
|
|
969
|
+
|
|
970
|
+
- name: github/spec-kit
|
|
971
|
+
url: https://github.com/github/spec-kit
|
|
972
|
+
stars: 122114
|
|
973
|
+
spdx: MIT
|
|
974
|
+
licenseClass: vendorable
|
|
975
|
+
maintained: true
|
|
976
|
+
lastCommit: "2026-07-17"
|
|
977
|
+
category: workflow-kit
|
|
978
|
+
portability: agnostic
|
|
979
|
+
# Its AGENTS.md is simultaneously the best exemplar and a blueprint for our adapter layer.
|
|
980
|
+
whatToBorrow: >-
|
|
981
|
+
Two distinct assets. First, the spec-driven workflow itself — /specify -> /plan -> /tasks —
|
|
982
|
+
as the reference implementation of turning a spec into an executable agent workflow. Second,
|
|
983
|
+
and more valuable to us, AGENTS.md is the best AGENTS.md we found: rather than generic
|
|
984
|
+
house style, it documents the repo's own integration architecture and is written to be acted
|
|
985
|
+
on. It specifies how to add support for a new coding agent as a numbered procedure (choose a
|
|
986
|
+
base class, create the subpackage, register it, define context-file behavior, test install
|
|
987
|
+
and uninstall, optional overrides), and it enumerates the three command file formats the tool
|
|
988
|
+
must emit — Markdown, TOML and YAML — plus argument-passing patterns. That is precisely
|
|
989
|
+
Groundplan's 14-target problem already solved once in public. Also borrow the per-integration
|
|
990
|
+
config keys (`folder` + `commands_subdir`, e.g. .kilocode/workflows/) as the minimal
|
|
991
|
+
description of where a tool's artifacts land, and the managed-section delimiter convention
|
|
992
|
+
for editing a user's existing context file without clobbering their content. The Copilot
|
|
993
|
+
integration is the model for a target that needs several artifact kinds at once (.agent.md
|
|
994
|
+
commands, companion .prompt.md files, a .vscode/settings.json merge, and an optional skills
|
|
995
|
+
mode emitting speckit-<name>/SKILL.md under .github/skills/).
|
|
996
|
+
whatToAvoid: >-
|
|
997
|
+
Heavyweight — a Python CLI with a class hierarchy per integration; adopt the architecture, not
|
|
998
|
+
the implementation. The workflow imposes real ceremony that is overkill for small changes.
|
|
999
|
+
Extensions self-seed context-file paths from a bundled agent-context-defaults.json rather
|
|
1000
|
+
than consulting the CLI registry, which is a deliberate decoupling but does mean
|
|
1001
|
+
agent-to-context-file knowledge is duplicated — do not copy that split without deciding it is
|
|
1002
|
+
what you want.
|
|
1003
|
+
proposedRegistryItems:
|
|
1004
|
+
- agents-md-exemplar-spec-kit
|
|
1005
|
+
- workflow-specify
|
|
1006
|
+
- workflow-plan
|
|
1007
|
+
- workflow-tasks
|
|
1008
|
+
- adapter-integration-contract
|
|
1009
|
+
- command-format-markdown
|
|
1010
|
+
- command-format-toml
|
|
1011
|
+
- command-format-yaml
|
|
1012
|
+
- context-file-managed-section
|
|
1013
|
+
- adapter-install-uninstall-test
|
|
1014
|
+
|
|
1015
|
+
- name: openai/openai-agents-python
|
|
1016
|
+
url: https://github.com/openai/openai-agents-python
|
|
1017
|
+
stars: 27995
|
|
1018
|
+
spdx: MIT
|
|
1019
|
+
licenseClass: vendorable
|
|
1020
|
+
maintained: true
|
|
1021
|
+
lastCommit: "2026-07-18"
|
|
1022
|
+
category: agents-md
|
|
1023
|
+
portability: agnostic
|
|
1024
|
+
whatToBorrow: >-
|
|
1025
|
+
A root AGENTS.md on a large, genuinely active production library — the useful kind of
|
|
1026
|
+
exemplar, because it is maintained under real contribution pressure rather than written once
|
|
1027
|
+
for show. Borrow the concrete-commands-over-prose discipline: exact setup, lint, and test
|
|
1028
|
+
invocations an agent can run unmodified, which is what separates an AGENTS.md that changes
|
|
1029
|
+
agent behavior from one that reads like a style guide.
|
|
1030
|
+
whatToAvoid: >-
|
|
1031
|
+
Content is specific to a Python SDK's toolchain; borrow the shape and the specificity, not
|
|
1032
|
+
the commands. The rest of the repo is an agents framework and is out of scope for the
|
|
1033
|
+
registry.
|
|
1034
|
+
proposedRegistryItems:
|
|
1035
|
+
- agents-md-exemplar-python-lib
|
|
1036
|
+
|
|
1037
|
+
# ---------------------------------------------------------------- editor rules
|
|
1038
|
+
|
|
1039
|
+
- name: github/awesome-copilot
|
|
1040
|
+
url: https://github.com/github/awesome-copilot
|
|
1041
|
+
stars: 36746
|
|
1042
|
+
spdx: MIT
|
|
1043
|
+
licenseClass: vendorable
|
|
1044
|
+
maintained: true
|
|
1045
|
+
lastCommit: "2026-07-18"
|
|
1046
|
+
category: rules-collection
|
|
1047
|
+
portability: copilot-only
|
|
1048
|
+
whatToBorrow: >-
|
|
1049
|
+
GitHub's own MIT-licensed collection, and the single best source for the Copilot target.
|
|
1050
|
+
Structurally it has already converged on the same four artifact types Groundplan emits —
|
|
1051
|
+
Agents, Instructions, Skills, and Plugins (bundles of agents and skills) — documented in
|
|
1052
|
+
docs/README.agents.md, docs/README.instructions.md, docs/README.skills.md and
|
|
1053
|
+
docs/README.plugins.md. The most borrowable mechanism is instruction scoping by file pattern:
|
|
1054
|
+
files under .github/instructions/ carry an `applyTo` glob so a rule activates only for the
|
|
1055
|
+
files it concerns, instead of every rule loading into every request. That is a real answer to
|
|
1056
|
+
context bloat and Groundplan should support an applyTo-equivalent in its rule schema and
|
|
1057
|
+
degrade it gracefully on targets without one. cookbook/ holds copy-paste-ready API recipes,
|
|
1058
|
+
and the repo has its own AGENTS.md.
|
|
1059
|
+
whatToAvoid: >-
|
|
1060
|
+
The applyTo mechanism, .github/copilot-instructions.md, chat modes, and the plugin format are
|
|
1061
|
+
Copilot-specific — they belong behind the Copilot adapter. Very large and fast-moving; pin a
|
|
1062
|
+
commit if you vendor. Trademark restrictions apply to GitHub and Copilot branding even though
|
|
1063
|
+
the code is MIT.
|
|
1064
|
+
proposedRegistryItems:
|
|
1065
|
+
- adapter-copilot-instructions
|
|
1066
|
+
- rule-applyto-glob-scoping
|
|
1067
|
+
- copilot-agent-profile
|
|
1068
|
+
- copilot-skill
|
|
1069
|
+
- copilot-plugin-bundle
|
|
1070
|
+
|
|
1071
|
+
- name: PatrickJS/awesome-cursorrules
|
|
1072
|
+
url: https://github.com/PatrickJS/awesome-cursorrules
|
|
1073
|
+
stars: 40355
|
|
1074
|
+
spdx: CC0-1.0
|
|
1075
|
+
licenseClass: vendorable
|
|
1076
|
+
maintained: true
|
|
1077
|
+
lastCommit: "2026-05-30"
|
|
1078
|
+
category: rules-collection
|
|
1079
|
+
portability: cursor-only
|
|
1080
|
+
# CC0 — public domain dedication. The most permissive large collection in this file.
|
|
1081
|
+
whatToBorrow: >-
|
|
1082
|
+
Hundreds of per-stack rule files released into the public domain, so they can be vendored,
|
|
1083
|
+
edited, and relicensed with no attribution obligation whatsoever. This is the cheapest way to
|
|
1084
|
+
populate Groundplan's per-stack rule layer across React, Next.js, TypeScript, Python, Go,
|
|
1085
|
+
Tailwind and the rest. The repo has moved to Cursor's .mdc Project Rules format, which is
|
|
1086
|
+
worth borrowing conceptually: rule frontmatter carries a glob and a description, giving
|
|
1087
|
+
Cursor the same selective-activation idea as Copilot's applyTo — strong evidence that
|
|
1088
|
+
pattern-scoped rules are the converged design and should be first-class in our schema.
|
|
1089
|
+
whatToAvoid: >-
|
|
1090
|
+
Rule quality is wildly uneven and much of it is stack-version-specific advice that ages badly
|
|
1091
|
+
— curate hard and date-stamp what you vendor. .mdc frontmatter is Cursor-specific and must be
|
|
1092
|
+
stripped or remapped for other targets. Legacy single-file .cursorrules content is deprecated
|
|
1093
|
+
upstream; do not emit it for new projects.
|
|
1094
|
+
proposedRegistryItems:
|
|
1095
|
+
- adapter-cursor-mdc
|
|
1096
|
+
- rule-glob-scoping
|
|
1097
|
+
- rules-per-stack-pack
|
|
1098
|
+
- rule-react
|
|
1099
|
+
- rule-nextjs
|
|
1100
|
+
- rule-typescript
|
|
1101
|
+
- rule-python
|
|
1102
|
+
- rule-tailwind
|
|
1103
|
+
|
|
1104
|
+
- name: sanjeed5/awesome-cursor-rules-mdc
|
|
1105
|
+
url: https://github.com/sanjeed5/awesome-cursor-rules-mdc
|
|
1106
|
+
stars: 3553
|
|
1107
|
+
spdx: CC0-1.0
|
|
1108
|
+
licenseClass: vendorable
|
|
1109
|
+
maintained: true
|
|
1110
|
+
lastCommit: "2026-05-19"
|
|
1111
|
+
category: rules-collection
|
|
1112
|
+
portability: cursor-only
|
|
1113
|
+
whatToBorrow: >-
|
|
1114
|
+
CC0 rules already authored natively in the .mdc format rather than converted from legacy
|
|
1115
|
+
.cursorrules, so the frontmatter is consistent and machine-parseable across the whole set.
|
|
1116
|
+
That consistency makes it the better bulk-import source of the two Cursor collections even
|
|
1117
|
+
though it is smaller — a uniform corpus is worth more to an importer than a larger ragged one.
|
|
1118
|
+
whatToAvoid: >-
|
|
1119
|
+
Heavy overlap with PatrickJS/awesome-cursorrules; dedupe by target technology and keep one.
|
|
1120
|
+
Generated at scale, so entries carry less human review than the star count implies.
|
|
1121
|
+
proposedRegistryItems:
|
|
1122
|
+
- rules-mdc-bulk-import
|
|
1123
|
+
|
|
1124
|
+
- name: steipete/agent-rules
|
|
1125
|
+
url: https://github.com/steipete/agent-rules
|
|
1126
|
+
stars: 5691
|
|
1127
|
+
spdx: MIT
|
|
1128
|
+
licenseClass: vendorable
|
|
1129
|
+
maintained: false
|
|
1130
|
+
lastCommit: "2026-05-03"
|
|
1131
|
+
category: rules-collection
|
|
1132
|
+
portability: agnostic
|
|
1133
|
+
# ARCHIVED 2026 — vendorable, but frozen. Take what you want now; nothing more is coming.
|
|
1134
|
+
whatToBorrow: >-
|
|
1135
|
+
Its premise is the one that matters most to us: the same rule file should work across Claude
|
|
1136
|
+
Code and Cursor rather than being authored twice. That cross-tool framing is rarer than it
|
|
1137
|
+
should be, and it makes this the most portable rules source here despite being archived.
|
|
1138
|
+
Borrow the shared-rule-body-plus-thin-adapter split directly.
|
|
1139
|
+
whatToAvoid: >-
|
|
1140
|
+
Archived — no fixes, no updates, no issue triage. Predates the Agent Skills standard, so its
|
|
1141
|
+
packaging is dated even where the rule content holds up. Treat as a frozen quarry.
|
|
1142
|
+
proposedRegistryItems:
|
|
1143
|
+
- rule-portable-body
|
|
1144
|
+
- rules-cross-tool-mapping
|
|
1145
|
+
|
|
1146
|
+
# ---------------------------------------------------------------- workflow methodology
|
|
1147
|
+
|
|
1148
|
+
- name: bmad-code-org/BMAD-METHOD
|
|
1149
|
+
url: https://github.com/bmad-code-org/BMAD-METHOD
|
|
1150
|
+
stars: 50775
|
|
1151
|
+
spdx: MIT
|
|
1152
|
+
licenseClass: vendorable
|
|
1153
|
+
maintained: true
|
|
1154
|
+
lastCommit: "2026-07-18"
|
|
1155
|
+
category: workflow-kit
|
|
1156
|
+
portability: agnostic
|
|
1157
|
+
# API reports NOASSERTION only because a contributor-attribution note is spliced into the MIT text.
|
|
1158
|
+
whatToBorrow: >-
|
|
1159
|
+
A large, MIT, actively-developed multi-agent methodology with a defined role set — Analyst,
|
|
1160
|
+
PM, Architect, Scrum Master, Developer, QA — and, more usefully, explicit handoff artifacts
|
|
1161
|
+
between them (brief -> PRD -> architecture -> sharded stories -> implementation). The sharded
|
|
1162
|
+
-story pattern is the borrowable core: decompose a plan into self-contained story files that
|
|
1163
|
+
each carry enough embedded context for a fresh agent session to execute without re-reading
|
|
1164
|
+
the whole plan. That is a direct, practical answer to context-window limits on long tasks and
|
|
1165
|
+
it is not tied to any vendor. Its installer targets many agent tools, which corroborates the
|
|
1166
|
+
multi-target adapter design.
|
|
1167
|
+
whatToAvoid: >-
|
|
1168
|
+
Very heavy process — the full ceremony is disproportionate for small projects and will read
|
|
1169
|
+
as bureaucracy if scaffolded by default; ship as an opt-in profile. Rapid, sometimes breaking
|
|
1170
|
+
version churn across major releases. Expansion packs reach well beyond software into
|
|
1171
|
+
unrelated domains and are out of scope.
|
|
1172
|
+
proposedRegistryItems:
|
|
1173
|
+
- workflow-bmad-roles
|
|
1174
|
+
- workflow-prd-to-architecture
|
|
1175
|
+
- workflow-sharded-stories
|
|
1176
|
+
- agent-analyst
|
|
1177
|
+
- agent-product-manager
|
|
1178
|
+
- agent-architect
|
|
1179
|
+
- agent-scrum-master
|
|
1180
|
+
- agent-qa-reviewer
|