h-urena-copilot-agentic-standards-monorepo-prompt.prompt.json json Copy{
"prompt": "# Scaffold Monorepo\n\n**Constraint:** Do not write any files until all required fields in Step 0 are confirmed.\n\n## 0. REQUIREMENTS_SCHEMA\n\n<schema>\nServices: [name: responsibility: stack for each service]\nShared code: [Yes: types | clients | utilities | None]\nPackage mgr: [npm workspaces | pnpm workspaces | uv workspaces | NuGet local projects]\nDeployment: [Independent per service | Composed together]\n</schema>\n\n## 1. DIRECTORY_STRUCTURE\n\n```\nmonorepo-root/\n├── apps/\n│ └── <service>/ # One directory per deployable service\n├── packages/ # Shared code (TypeScript only)\n│ ├── types/ # Shared types / contracts\n│ └── config/ # Shared ESLint / TS config\n├── infra/ # IaC (Terraform / Bicep / Pulumi)\n├── scripts/\n│ ├── setup.sh # One-command dev bootstrap\n│ └── check-all.sh # Lint + test across all services\n├── docs/decisions/ # ADRs\n├── docker-compose.yml # All services for local dev\n└── README.md\n```\n\n## 2. WORKSPACE_TABLE\n\n| Stack | Config file | Key constraint |\n|---|---|---|\n| TypeScript (pnpm) | `pnpm-workspace.yaml` | Each app is a workspace package |\n| Python (uv) | `pyproject.toml` `[tool.uv.workspace]` | `members = [\"apps/*\"]` |\n| C# | `.sln` + `dotnet sln add` | All projects in solution |\n\n## 3. SHARED_CONTRACT_RULES\n\n| Rule | Constraint |\n|---|---|\n| Single source of truth | Types defined once in `packages/types/` — never duplicated |\n| No database sharing | Each service owns its database |\n| Contract-first | API contracts (OpenAPI / Protobuf / Avro) defined before implementation |\n\n## 4. CI_REQUIREMENTS\n\n| Check | Constraint |\n|---|---|\n| Path filtering | Each service CI triggers only when its files change |\n| Shared package changes | Triggers CI for all consuming services |\n| Root scripts | `check-all.sh` runs lint + test across all services |\n| Per-service Dockerfile | Every deployable unit has its own `Dockerfile` |\n\n## FORBIDDEN\n\n| Pattern | Reason |\n|---|---|\n| Shared database between services | Coupling; deployment dependency |\n| Type duplication across services | Divergence; maintenance burden |\n| Single CI job for all services | Unrelated failures block unrelated services |\n| Big-bang migration to monorepo | Migrate service-by-service |\n| Floating dependency versions | Breaks workspace reproducibility |",
"variables": [],
"notes": "Scaffold a multi-service monorepo: directory layout, shared tooling, inter-service contracts, per-service CI.",
"metadata": {
"source": {
"provider": "github-prompts",
"repository": "https://github.com/h-urena/copilot-agentic-standards",
"path": ".github/prompts/scaffolds/monorepo.prompt.md",
"ref": "41a8bce9e513c5755786049c88d5ee9562b05562",
"url": "https://github.com/h-urena/copilot-agentic-standards/blob/41a8bce9e513c5755786049c88d5ee9562b05562/.github/prompts/scaffolds/monorepo.prompt.md",
"key": "h-urena/copilot-agentic-standards/.github/prompts/scaffolds/monorepo.prompt.md"
}
}
}