@totaland/create-starter-kit 1.0.0 → 2.0.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/README.md +130 -18
- package/bin/index.js +109 -21
- package/package.json +2 -2
- package/templates/backend/.github/agents/ /360/237/216/255 planner.agent.md" +92 -0
- package/templates/backend/.github/agents/api-architect.agent.md +41 -0
- package/templates/backend/.github/agents/code-reviewer.agent.md +26 -0
- package/templates/backend/.github/agents/code-simplifier.agent.md +41 -0
- package/templates/backend/.github/agents/code-skeptic.agent.md +74 -0
- package/templates/backend/.github/agents/docs-specialist.agent.md +25 -0
- package/templates/backend/.github/agents/implementation-plan.agent.md +160 -0
- package/templates/backend/.github/agents/janitor.agent.md +90 -0
- package/templates/backend/.github/agents/ms-sql-dba.agent.md +25 -0
- package/templates/backend/.github/agents/plan.agent.md +115 -0
- package/templates/backend/.github/agents/planner.agent.md +15 -0
- package/templates/backend/.github/agents/playwright-tester.agent.md +13 -0
- package/templates/backend/.github/agents/postgresql-dba.agent.md +18 -0
- package/templates/backend/.github/agents/prd.agent.md +202 -0
- package/templates/backend/.github/agents/research-technical-spike.agent.md +170 -0
- package/templates/backend/.github/agents/software-engineer-agent-v1.agent.md +165 -0
- package/templates/backend/.github/agents/task-planner.agent.md +375 -0
- package/templates/backend/.github/agents/task-researcher.agent.md +255 -0
- package/templates/backend/.github/agents/tdd-green.agent.md +60 -0
- package/templates/backend/.github/agents/tdd-red.agent.md +60 -0
- package/templates/backend/.github/agents/tdd-refactor.agent.md +85 -0
- package/templates/backend/.github/agents/tech-debt-remediation-plan.agent.md +50 -0
- package/templates/backend/.github/agents/typescript-mcp-expert.agent.md +91 -0
- package/templates/backend/.github/agents/ultimate-thinking-beastmode.agent.md +644 -0
- package/templates/backend/.github/agents//360/237/216/255 generator.agent.md" +264 -0
- package/templates/backend/.github/agents//360/237/216/255 healer.agent.md" +44 -0
- package/templates/backend/.github/agents//360/237/216/255 pom.agent.md" +308 -0
- package/templates/backend/.github/instructions/a11y.instructions.md +369 -0
- package/templates/backend/.github/instructions/ms-sql-dba.instructions.md +25 -0
- package/templates/backend/.github/instructions/object-calisthenics.instructions.md +302 -0
- package/templates/backend/.github/instructions/performance-optimization.instructions.md +420 -0
- package/templates/backend/.github/instructions/playwright-python.instructions.md +62 -0
- package/templates/backend/.github/instructions/playwright-typescript.instructions.md +86 -0
- package/templates/backend/.github/instructions/security-and-owasp.instructions.md +51 -0
- package/templates/backend/.github/instructions/self-explanatory-code-commenting.instructions.md +162 -0
- package/templates/backend/.github/instructions/spec-driven-workflow-v1.instructions.md +323 -0
- package/templates/backend/.github/instructions/sql-sp-generation.instructions.md +74 -0
- package/templates/backend/.github/instructions/task-implementation.instructions.md +190 -0
- package/templates/backend/.github/instructions/typescript-mcp-server.instructions.md +228 -0
- package/templates/backend/.github/prompts/ai-prompt-engineering-safety-review.prompt.md +229 -0
- package/templates/backend/.github/prompts/architecture-blueprint-generator.prompt.md +321 -0
- package/templates/backend/.github/prompts/breakdown-epic-arch.prompt.md +65 -0
- package/templates/backend/.github/prompts/breakdown-epic-pm.prompt.md +57 -0
- package/templates/backend/.github/prompts/breakdown-feature-implementation.prompt.md +127 -0
- package/templates/backend/.github/prompts/breakdown-feature-prd.prompt.md +60 -0
- package/templates/backend/.github/prompts/breakdown-plan.prompt.md +508 -0
- package/templates/backend/.github/prompts/copilot-instructions-blueprint-generator.prompt.md +293 -0
- package/templates/backend/.github/prompts/create-agentsmd.prompt.md +248 -0
- package/templates/backend/.github/prompts/create-github-issue-feature-from-specification.prompt.md +27 -0
- package/templates/backend/.github/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +27 -0
- package/templates/backend/.github/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +35 -0
- package/templates/backend/.github/prompts/create-implementation-plan.prompt.md +156 -0
- package/templates/backend/.github/prompts/create-llms.prompt.md +209 -0
- package/templates/backend/.github/prompts/create-specification.prompt.md +126 -0
- package/templates/backend/.github/prompts/create-technical-spike.prompt.md +230 -0
- package/templates/backend/.github/prompts/csharp-nunit.prompt.md +71 -0
- package/templates/backend/.github/prompts/ef-core.prompt.md +76 -0
- package/templates/backend/.github/prompts/folder-structure-blueprint-generator.prompt.md +404 -0
- package/templates/backend/.github/prompts/gen-specs-as-issues.prompt.md +165 -0
- package/templates/backend/.github/prompts/generate-custom-instructions-from-codebase.prompt.md +239 -0
- package/templates/backend/.github/prompts/java-junit.prompt.md +64 -0
- package/templates/backend/.github/prompts/memory-merger.prompt.md +107 -0
- package/templates/backend/.github/prompts/multi-stage-dockerfile.prompt.md +46 -0
- package/templates/backend/.github/prompts/playwright-automation-fill-in-form.prompt.md +29 -0
- package/templates/backend/.github/prompts/playwright-explore-website.prompt.md +19 -0
- package/templates/backend/.github/prompts/playwright-generate-test.prompt.md +19 -0
- package/templates/backend/.github/prompts/postgresql-code-review.prompt.md +214 -0
- package/templates/backend/.github/prompts/postgresql-optimization.prompt.md +406 -0
- package/templates/backend/.github/prompts/project-workflow-analysis-blueprint-generator.prompt.md +294 -0
- package/templates/backend/.github/prompts/prompt-builder.prompt.md +142 -0
- package/templates/backend/.github/prompts/remember.prompt.md +125 -0
- package/templates/backend/.github/prompts/review-and-refactor.prompt.md +15 -0
- package/templates/backend/.github/prompts/sql-code-review.prompt.md +303 -0
- package/templates/backend/.github/prompts/sql-optimization.prompt.md +298 -0
- package/templates/backend/.github/prompts/suggest-awesome-github-copilot-agents.prompt.md +72 -0
- package/templates/backend/.github/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +71 -0
- package/templates/backend/.github/prompts/suggest-awesome-github-copilot-collections.prompt.md +149 -0
- package/templates/backend/.github/prompts/suggest-awesome-github-copilot-instructions.prompt.md +88 -0
- package/templates/backend/.github/prompts/suggest-awesome-github-copilot-prompts.prompt.md +71 -0
- package/templates/backend/.github/prompts/technology-stack-blueprint-generator.prompt.md +242 -0
- package/templates/backend/.github/prompts/typescript-mcp-server-generator.prompt.md +90 -0
- package/templates/backend/.github/prompts/update-implementation-plan.prompt.md +157 -0
- package/templates/backend/.github/prompts/update-markdown-file-index.prompt.md +76 -0
- package/templates/backend/Project_Folders_Structure_Blueprint.md +529 -0
- package/templates/backend/README.md +99 -0
- package/templates/backend/biome.json +45 -0
- package/{template → templates/backend}/drizzle.config.ts +1 -1
- package/{template → templates/backend}/package.json +9 -4
- package/templates/backend/pnpm-lock.yaml +4240 -0
- package/templates/backend/src/features/health/health.test.ts +23 -0
- package/{template → templates/backend}/src/features/health/index.ts +1 -0
- package/templates/backend/src/features/health/schemas.ts +29 -0
- package/templates/backend/src/features/orders/controller.ts +18 -0
- package/templates/backend/src/features/orders/index.ts +10 -0
- package/templates/backend/src/features/orders/schemas.ts +62 -0
- package/{template → templates/backend}/src/index.ts +3 -36
- package/templates/backend/src/lib/openapi.ts +25 -0
- package/templates/backend/src/lib/validateRequest.test.ts +84 -0
- package/templates/backend/src/lib/validateRequest.ts +72 -0
- package/{template → templates/backend}/tsconfig.json +2 -2
- package/{template → templates/backend}/vitest.config.ts +8 -1
- package/templates/frontend/.env.example +7 -0
- package/templates/frontend/.github/agents/ /360/237/216/255 planner.agent.md" +92 -0
- package/templates/frontend/.github/agents/api-architect.agent.md +41 -0
- package/templates/frontend/.github/agents/code-reviewer.agent.md +26 -0
- package/templates/frontend/.github/agents/code-simplifier.agent.md +41 -0
- package/templates/frontend/.github/agents/code-skeptic.agent.md +74 -0
- package/templates/frontend/.github/agents/docs-specialist.agent.md +25 -0
- package/templates/frontend/.github/agents/implementation-plan.agent.md +160 -0
- package/templates/frontend/.github/agents/janitor.agent.md +90 -0
- package/templates/frontend/.github/agents/ms-sql-dba.agent.md +25 -0
- package/templates/frontend/.github/agents/plan.agent.md +115 -0
- package/templates/frontend/.github/agents/planner.agent.md +15 -0
- package/templates/frontend/.github/agents/playwright-tester.agent.md +13 -0
- package/templates/frontend/.github/agents/postgresql-dba.agent.md +18 -0
- package/templates/frontend/.github/agents/prd.agent.md +202 -0
- package/templates/frontend/.github/agents/research-technical-spike.agent.md +170 -0
- package/templates/frontend/.github/agents/software-engineer-agent-v1.agent.md +165 -0
- package/templates/frontend/.github/agents/task-planner.agent.md +375 -0
- package/templates/frontend/.github/agents/task-researcher.agent.md +255 -0
- package/templates/frontend/.github/agents/tdd-green.agent.md +60 -0
- package/templates/frontend/.github/agents/tdd-red.agent.md +60 -0
- package/templates/frontend/.github/agents/tdd-refactor.agent.md +85 -0
- package/templates/frontend/.github/agents/tech-debt-remediation-plan.agent.md +50 -0
- package/templates/frontend/.github/agents/typescript-mcp-expert.agent.md +91 -0
- package/templates/frontend/.github/agents/ultimate-thinking-beastmode.agent.md +644 -0
- package/templates/frontend/.github/agents//360/237/216/255 generator.agent.md" +264 -0
- package/templates/frontend/.github/agents//360/237/216/255 healer.agent.md" +44 -0
- package/templates/frontend/.github/agents//360/237/216/255 pom.agent.md" +308 -0
- package/templates/frontend/.github/instructions/a11y.instructions.md +369 -0
- package/templates/frontend/.github/instructions/ms-sql-dba.instructions.md +25 -0
- package/templates/frontend/.github/instructions/object-calisthenics.instructions.md +302 -0
- package/templates/frontend/.github/instructions/performance-optimization.instructions.md +420 -0
- package/templates/frontend/.github/instructions/playwright-python.instructions.md +62 -0
- package/templates/frontend/.github/instructions/playwright-typescript.instructions.md +86 -0
- package/templates/frontend/.github/instructions/security-and-owasp.instructions.md +51 -0
- package/templates/frontend/.github/instructions/self-explanatory-code-commenting.instructions.md +162 -0
- package/templates/frontend/.github/instructions/spec-driven-workflow-v1.instructions.md +323 -0
- package/templates/frontend/.github/instructions/sql-sp-generation.instructions.md +74 -0
- package/templates/frontend/.github/instructions/task-implementation.instructions.md +190 -0
- package/templates/frontend/.github/instructions/typescript-mcp-server.instructions.md +228 -0
- package/templates/frontend/.github/prompts/ai-prompt-engineering-safety-review.prompt.md +229 -0
- package/templates/frontend/.github/prompts/architecture-blueprint-generator.prompt.md +321 -0
- package/templates/frontend/.github/prompts/breakdown-epic-arch.prompt.md +65 -0
- package/templates/frontend/.github/prompts/breakdown-epic-pm.prompt.md +57 -0
- package/templates/frontend/.github/prompts/breakdown-feature-implementation.prompt.md +127 -0
- package/templates/frontend/.github/prompts/breakdown-feature-prd.prompt.md +60 -0
- package/templates/frontend/.github/prompts/breakdown-plan.prompt.md +508 -0
- package/templates/frontend/.github/prompts/copilot-instructions-blueprint-generator.prompt.md +293 -0
- package/templates/frontend/.github/prompts/create-agentsmd.prompt.md +248 -0
- package/templates/frontend/.github/prompts/create-github-issue-feature-from-specification.prompt.md +27 -0
- package/templates/frontend/.github/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +27 -0
- package/templates/frontend/.github/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +35 -0
- package/templates/frontend/.github/prompts/create-implementation-plan.prompt.md +156 -0
- package/templates/frontend/.github/prompts/create-llms.prompt.md +209 -0
- package/templates/frontend/.github/prompts/create-specification.prompt.md +126 -0
- package/templates/frontend/.github/prompts/create-technical-spike.prompt.md +230 -0
- package/templates/frontend/.github/prompts/csharp-nunit.prompt.md +71 -0
- package/templates/frontend/.github/prompts/ef-core.prompt.md +76 -0
- package/templates/frontend/.github/prompts/folder-structure-blueprint-generator.prompt.md +404 -0
- package/templates/frontend/.github/prompts/gen-specs-as-issues.prompt.md +165 -0
- package/templates/frontend/.github/prompts/generate-custom-instructions-from-codebase.prompt.md +239 -0
- package/templates/frontend/.github/prompts/java-junit.prompt.md +64 -0
- package/templates/frontend/.github/prompts/memory-merger.prompt.md +107 -0
- package/templates/frontend/.github/prompts/multi-stage-dockerfile.prompt.md +46 -0
- package/templates/frontend/.github/prompts/playwright-automation-fill-in-form.prompt.md +29 -0
- package/templates/frontend/.github/prompts/playwright-explore-website.prompt.md +19 -0
- package/templates/frontend/.github/prompts/playwright-generate-test.prompt.md +19 -0
- package/templates/frontend/.github/prompts/postgresql-code-review.prompt.md +214 -0
- package/templates/frontend/.github/prompts/postgresql-optimization.prompt.md +406 -0
- package/templates/frontend/.github/prompts/project-workflow-analysis-blueprint-generator.prompt.md +294 -0
- package/templates/frontend/.github/prompts/prompt-builder.prompt.md +142 -0
- package/templates/frontend/.github/prompts/remember.prompt.md +125 -0
- package/templates/frontend/.github/prompts/review-and-refactor.prompt.md +15 -0
- package/templates/frontend/.github/prompts/sql-code-review.prompt.md +303 -0
- package/templates/frontend/.github/prompts/sql-optimization.prompt.md +298 -0
- package/templates/frontend/.github/prompts/suggest-awesome-github-copilot-agents.prompt.md +72 -0
- package/templates/frontend/.github/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +71 -0
- package/templates/frontend/.github/prompts/suggest-awesome-github-copilot-collections.prompt.md +149 -0
- package/templates/frontend/.github/prompts/suggest-awesome-github-copilot-instructions.prompt.md +88 -0
- package/templates/frontend/.github/prompts/suggest-awesome-github-copilot-prompts.prompt.md +71 -0
- package/templates/frontend/.github/prompts/technology-stack-blueprint-generator.prompt.md +242 -0
- package/templates/frontend/.github/prompts/typescript-mcp-server-generator.prompt.md +90 -0
- package/templates/frontend/.github/prompts/update-implementation-plan.prompt.md +157 -0
- package/templates/frontend/.github/prompts/update-markdown-file-index.prompt.md +76 -0
- package/templates/frontend/README.md +199 -0
- package/templates/frontend/biome.json +45 -0
- package/templates/frontend/components.json +22 -0
- package/templates/frontend/index.html +13 -0
- package/templates/frontend/package.json +44 -0
- package/templates/frontend/pnpm-lock.yaml +2011 -0
- package/templates/frontend/postcss.config.js +6 -0
- package/templates/frontend/public/vite.svg +1 -0
- package/templates/frontend/src/App.css +42 -0
- package/templates/frontend/src/App.tsx +17 -0
- package/templates/frontend/src/assets/react.svg +1 -0
- package/templates/frontend/src/components/layout/layout.component.tsx +31 -0
- package/templates/frontend/src/components/menu-toggle-icon.tsx +53 -0
- package/templates/frontend/src/components/ui/button.tsx +57 -0
- package/templates/frontend/src/docs/RECOMMENDED_LIBRARIES.md +226 -0
- package/templates/frontend/src/docs/SETUP_SUMMARY.md +162 -0
- package/templates/frontend/src/hooks/use-scroll.ts +21 -0
- package/templates/frontend/src/index.css +121 -0
- package/templates/frontend/src/lib/api-client.ts +46 -0
- package/templates/frontend/src/lib/utils.ts +6 -0
- package/templates/frontend/src/main.tsx +30 -0
- package/templates/frontend/src/pages/about/about.page.tsx +50 -0
- package/templates/frontend/src/pages/home/home.page.tsx +43 -0
- package/templates/frontend/tailwind.config.js +59 -0
- package/templates/frontend/tsconfig.app.json +41 -0
- package/templates/frontend/tsconfig.json +13 -0
- package/templates/frontend/tsconfig.node.json +26 -0
- package/templates/frontend/vite.config.ts +14 -0
- package/template/.env.example +0 -8
- package/template/AGENTS.md +0 -23
- package/template/ARCHITECTURE.md +0 -53
- package/template/ORDER_SYSTEM.md +0 -93
- package/template/biome.json +0 -3
- package/template/src/features/orders/controller.ts +0 -13
- package/template/src/features/orders/index.ts +0 -7
- /package/{template → templates/backend}/knip.json +0 -0
- /package/{template → templates/backend}/playwright.config.ts +0 -0
- /package/{template → templates/backend}/pnpm-workspace.yaml +0 -0
- /package/{template → templates/backend}/src/features/health/controller.ts +0 -0
- /package/{template → templates/backend}/tsconfig.build.json +0 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.'
|
|
3
|
+
tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search']
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create Technical Spike Document
|
|
7
|
+
|
|
8
|
+
Create time-boxed technical spike documents for researching critical questions that must be answered before development can proceed. Each spike focuses on a specific technical decision with clear deliverables and timelines.
|
|
9
|
+
|
|
10
|
+
## Document Structure
|
|
11
|
+
|
|
12
|
+
Create individual files in `${input:FolderPath|docs/spikes}` directory. Name each file using the pattern: `[category]-[short-description]-spike.md` (e.g., `api-copilot-integration-spike.md`, `performance-realtime-audio-spike.md`).
|
|
13
|
+
|
|
14
|
+
```md
|
|
15
|
+
---
|
|
16
|
+
title: "${input:SpikeTitle}"
|
|
17
|
+
category: "${input:Category|Technical}"
|
|
18
|
+
status: "🔴 Not Started"
|
|
19
|
+
priority: "${input:Priority|High}"
|
|
20
|
+
timebox: "${input:Timebox|1 week}"
|
|
21
|
+
created: [YYYY-MM-DD]
|
|
22
|
+
updated: [YYYY-MM-DD]
|
|
23
|
+
owner: "${input:Owner}"
|
|
24
|
+
tags: ["technical-spike", "${input:Category|technical}", "research"]
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# ${input:SpikeTitle}
|
|
28
|
+
|
|
29
|
+
## Summary
|
|
30
|
+
|
|
31
|
+
**Spike Objective:** [Clear, specific question or decision that needs resolution]
|
|
32
|
+
|
|
33
|
+
**Why This Matters:** [Impact on development/architecture decisions]
|
|
34
|
+
|
|
35
|
+
**Timebox:** [How much time allocated to this spike]
|
|
36
|
+
|
|
37
|
+
**Decision Deadline:** [When this must be resolved to avoid blocking development]
|
|
38
|
+
|
|
39
|
+
## Research Question(s)
|
|
40
|
+
|
|
41
|
+
**Primary Question:** [Main technical question that needs answering]
|
|
42
|
+
|
|
43
|
+
**Secondary Questions:**
|
|
44
|
+
|
|
45
|
+
- [Related question 1]
|
|
46
|
+
- [Related question 2]
|
|
47
|
+
- [Related question 3]
|
|
48
|
+
|
|
49
|
+
## Investigation Plan
|
|
50
|
+
|
|
51
|
+
### Research Tasks
|
|
52
|
+
|
|
53
|
+
- [ ] [Specific research task 1]
|
|
54
|
+
- [ ] [Specific research task 2]
|
|
55
|
+
- [ ] [Specific research task 3]
|
|
56
|
+
- [ ] [Create proof of concept/prototype]
|
|
57
|
+
- [ ] [Document findings and recommendations]
|
|
58
|
+
|
|
59
|
+
### Success Criteria
|
|
60
|
+
|
|
61
|
+
**This spike is complete when:**
|
|
62
|
+
|
|
63
|
+
- [ ] [Specific criteria 1]
|
|
64
|
+
- [ ] [Specific criteria 2]
|
|
65
|
+
- [ ] [Clear recommendation documented]
|
|
66
|
+
- [ ] [Proof of concept completed (if applicable)]
|
|
67
|
+
|
|
68
|
+
## Technical Context
|
|
69
|
+
|
|
70
|
+
**Related Components:** [List system components affected by this decision]
|
|
71
|
+
|
|
72
|
+
**Dependencies:** [What other spikes or decisions depend on resolving this]
|
|
73
|
+
|
|
74
|
+
**Constraints:** [Known limitations or requirements that affect the solution]
|
|
75
|
+
|
|
76
|
+
## Research Findings
|
|
77
|
+
|
|
78
|
+
### Investigation Results
|
|
79
|
+
|
|
80
|
+
[Document research findings, test results, and evidence gathered]
|
|
81
|
+
|
|
82
|
+
### Prototype/Testing Notes
|
|
83
|
+
|
|
84
|
+
[Results from any prototypes, spikes, or technical experiments]
|
|
85
|
+
|
|
86
|
+
### External Resources
|
|
87
|
+
|
|
88
|
+
- [Link to relevant documentation]
|
|
89
|
+
- [Link to API references]
|
|
90
|
+
- [Link to community discussions]
|
|
91
|
+
- [Link to examples/tutorials]
|
|
92
|
+
|
|
93
|
+
## Decision
|
|
94
|
+
|
|
95
|
+
### Recommendation
|
|
96
|
+
|
|
97
|
+
[Clear recommendation based on research findings]
|
|
98
|
+
|
|
99
|
+
### Rationale
|
|
100
|
+
|
|
101
|
+
[Why this approach was chosen over alternatives]
|
|
102
|
+
|
|
103
|
+
### Implementation Notes
|
|
104
|
+
|
|
105
|
+
[Key considerations for implementation]
|
|
106
|
+
|
|
107
|
+
### Follow-up Actions
|
|
108
|
+
|
|
109
|
+
- [ ] [Action item 1]
|
|
110
|
+
- [ ] [Action item 2]
|
|
111
|
+
- [ ] [Update architecture documents]
|
|
112
|
+
- [ ] [Create implementation tasks]
|
|
113
|
+
|
|
114
|
+
## Status History
|
|
115
|
+
|
|
116
|
+
| Date | Status | Notes |
|
|
117
|
+
| ------ | -------------- | -------------------------- |
|
|
118
|
+
| [Date] | 🔴 Not Started | Spike created and scoped |
|
|
119
|
+
| [Date] | 🟡 In Progress | Research commenced |
|
|
120
|
+
| [Date] | 🟢 Complete | [Resolution summary] |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
_Last updated: [Date] by [Name]_
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Categories for Technical Spikes
|
|
128
|
+
|
|
129
|
+
### API Integration
|
|
130
|
+
|
|
131
|
+
- Third-party API capabilities and limitations
|
|
132
|
+
- Integration patterns and authentication
|
|
133
|
+
- Rate limits and performance characteristics
|
|
134
|
+
|
|
135
|
+
### Architecture & Design
|
|
136
|
+
|
|
137
|
+
- System architecture decisions
|
|
138
|
+
- Design pattern applicability
|
|
139
|
+
- Component interaction models
|
|
140
|
+
|
|
141
|
+
### Performance & Scalability
|
|
142
|
+
|
|
143
|
+
- Performance requirements and constraints
|
|
144
|
+
- Scalability bottlenecks and solutions
|
|
145
|
+
- Resource utilization patterns
|
|
146
|
+
|
|
147
|
+
### Platform & Infrastructure
|
|
148
|
+
|
|
149
|
+
- Platform capabilities and limitations
|
|
150
|
+
- Infrastructure requirements
|
|
151
|
+
- Deployment and hosting considerations
|
|
152
|
+
|
|
153
|
+
### Security & Compliance
|
|
154
|
+
|
|
155
|
+
- Security requirements and implementations
|
|
156
|
+
- Compliance constraints
|
|
157
|
+
- Authentication and authorization approaches
|
|
158
|
+
|
|
159
|
+
### User Experience
|
|
160
|
+
|
|
161
|
+
- User interaction patterns
|
|
162
|
+
- Accessibility requirements
|
|
163
|
+
- Interface design decisions
|
|
164
|
+
|
|
165
|
+
## File Naming Conventions
|
|
166
|
+
|
|
167
|
+
Use descriptive, kebab-case names that indicate the category and specific unknown:
|
|
168
|
+
|
|
169
|
+
**API/Integration Examples:**
|
|
170
|
+
|
|
171
|
+
- `api-copilot-chat-integration-spike.md`
|
|
172
|
+
- `api-azure-speech-realtime-spike.md`
|
|
173
|
+
- `api-vscode-extension-capabilities-spike.md`
|
|
174
|
+
|
|
175
|
+
**Performance Examples:**
|
|
176
|
+
|
|
177
|
+
- `performance-audio-processing-latency-spike.md`
|
|
178
|
+
- `performance-extension-host-limitations-spike.md`
|
|
179
|
+
- `performance-webrtc-reliability-spike.md`
|
|
180
|
+
|
|
181
|
+
**Architecture Examples:**
|
|
182
|
+
|
|
183
|
+
- `architecture-voice-pipeline-design-spike.md`
|
|
184
|
+
- `architecture-state-management-spike.md`
|
|
185
|
+
- `architecture-error-handling-strategy-spike.md`
|
|
186
|
+
|
|
187
|
+
## Best Practices for AI Agents
|
|
188
|
+
|
|
189
|
+
1. **One Question Per Spike:** Each document focuses on a single technical decision or research question
|
|
190
|
+
|
|
191
|
+
2. **Time-Boxed Research:** Define specific time limits and deliverables for each spike
|
|
192
|
+
|
|
193
|
+
3. **Evidence-Based Decisions:** Require concrete evidence (tests, prototypes, documentation) before marking as complete
|
|
194
|
+
|
|
195
|
+
4. **Clear Recommendations:** Document specific recommendations and rationale for implementation
|
|
196
|
+
|
|
197
|
+
5. **Dependency Tracking:** Identify how spikes relate to each other and impact project decisions
|
|
198
|
+
|
|
199
|
+
6. **Outcome-Focused:** Every spike must result in an actionable decision or recommendation
|
|
200
|
+
|
|
201
|
+
## Research Strategy
|
|
202
|
+
|
|
203
|
+
### Phase 1: Information Gathering
|
|
204
|
+
|
|
205
|
+
1. **Search existing documentation** using search/fetch tools
|
|
206
|
+
2. **Analyze codebase** for existing patterns and constraints
|
|
207
|
+
3. **Research external resources** (APIs, libraries, examples)
|
|
208
|
+
|
|
209
|
+
### Phase 2: Validation & Testing
|
|
210
|
+
|
|
211
|
+
1. **Create focused prototypes** to test specific hypotheses
|
|
212
|
+
2. **Run targeted experiments** to validate assumptions
|
|
213
|
+
3. **Document test results** with supporting evidence
|
|
214
|
+
|
|
215
|
+
### Phase 3: Decision & Documentation
|
|
216
|
+
|
|
217
|
+
1. **Synthesize findings** into clear recommendations
|
|
218
|
+
2. **Document implementation guidance** for development team
|
|
219
|
+
3. **Create follow-up tasks** for implementation
|
|
220
|
+
|
|
221
|
+
## Tools Usage
|
|
222
|
+
|
|
223
|
+
- **search/searchResults:** Research existing solutions and documentation
|
|
224
|
+
- **fetch/githubRepo:** Analyze external APIs, libraries, and examples
|
|
225
|
+
- **codebase:** Understand existing system constraints and patterns
|
|
226
|
+
- **runTasks:** Execute prototypes and validation tests
|
|
227
|
+
- **editFiles:** Update research progress and findings
|
|
228
|
+
- **vscodeAPI:** Test VS Code extension capabilities and limitations
|
|
229
|
+
|
|
230
|
+
Focus on time-boxed research that resolves critical technical decisions and unblocks development progress.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'search']
|
|
3
|
+
description: 'Get best practices for NUnit unit testing, including data-driven tests'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NUnit Best Practices
|
|
7
|
+
|
|
8
|
+
Your goal is to help me write effective unit tests with NUnit, covering both standard and data-driven testing approaches.
|
|
9
|
+
|
|
10
|
+
## Project Setup
|
|
11
|
+
|
|
12
|
+
- Use a separate test project with naming convention `[ProjectName].Tests`
|
|
13
|
+
- Reference Microsoft.NET.Test.Sdk, NUnit, and NUnit3TestAdapter packages
|
|
14
|
+
- Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
|
|
15
|
+
- Use .NET SDK test commands: `dotnet test` for running tests
|
|
16
|
+
|
|
17
|
+
## Test Structure
|
|
18
|
+
|
|
19
|
+
- Apply `[TestFixture]` attribute to test classes
|
|
20
|
+
- Use `[Test]` attribute for test methods
|
|
21
|
+
- Follow the Arrange-Act-Assert (AAA) pattern
|
|
22
|
+
- Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
|
|
23
|
+
- Use `[SetUp]` and `[TearDown]` for per-test setup and teardown
|
|
24
|
+
- Use `[OneTimeSetUp]` and `[OneTimeTearDown]` for per-class setup and teardown
|
|
25
|
+
- Use `[SetUpFixture]` for assembly-level setup and teardown
|
|
26
|
+
|
|
27
|
+
## Standard Tests
|
|
28
|
+
|
|
29
|
+
- Keep tests focused on a single behavior
|
|
30
|
+
- Avoid testing multiple behaviors in one test method
|
|
31
|
+
- Use clear assertions that express intent
|
|
32
|
+
- Include only the assertions needed to verify the test case
|
|
33
|
+
- Make tests independent and idempotent (can run in any order)
|
|
34
|
+
- Avoid test interdependencies
|
|
35
|
+
|
|
36
|
+
## Data-Driven Tests
|
|
37
|
+
|
|
38
|
+
- Use `[TestCase]` for inline test data
|
|
39
|
+
- Use `[TestCaseSource]` for programmatically generated test data
|
|
40
|
+
- Use `[Values]` for simple parameter combinations
|
|
41
|
+
- Use `[ValueSource]` for property or method-based data sources
|
|
42
|
+
- Use `[Random]` for random numeric test values
|
|
43
|
+
- Use `[Range]` for sequential numeric test values
|
|
44
|
+
- Use `[Combinatorial]` or `[Pairwise]` for combining multiple parameters
|
|
45
|
+
|
|
46
|
+
## Assertions
|
|
47
|
+
|
|
48
|
+
- Use `Assert.That` with constraint model (preferred NUnit style)
|
|
49
|
+
- Use constraints like `Is.EqualTo`, `Is.SameAs`, `Contains.Item`
|
|
50
|
+
- Use `Assert.AreEqual` for simple value equality (classic style)
|
|
51
|
+
- Use `CollectionAssert` for collection comparisons
|
|
52
|
+
- Use `StringAssert` for string-specific assertions
|
|
53
|
+
- Use `Assert.Throws<T>` or `Assert.ThrowsAsync<T>` to test exceptions
|
|
54
|
+
- Use descriptive messages in assertions for clarity on failure
|
|
55
|
+
|
|
56
|
+
## Mocking and Isolation
|
|
57
|
+
|
|
58
|
+
- Consider using Moq or NSubstitute alongside NUnit
|
|
59
|
+
- Mock dependencies to isolate units under test
|
|
60
|
+
- Use interfaces to facilitate mocking
|
|
61
|
+
- Consider using a DI container for complex test setups
|
|
62
|
+
|
|
63
|
+
## Test Organization
|
|
64
|
+
|
|
65
|
+
- Group tests by feature or component
|
|
66
|
+
- Use categories with `[Category("CategoryName")]`
|
|
67
|
+
- Use `[Order]` to control test execution order when necessary
|
|
68
|
+
- Use `[Author("DeveloperName")]` to indicate ownership
|
|
69
|
+
- Use `[Description]` to provide additional test information
|
|
70
|
+
- Consider `[Explicit]` for tests that shouldn't run automatically
|
|
71
|
+
- Use `[Ignore("Reason")]` to temporarily skip tests
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'runCommands']
|
|
4
|
+
description: 'Get best practices for Entity Framework Core'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Entity Framework Core Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me follow best practices when working with Entity Framework Core.
|
|
10
|
+
|
|
11
|
+
## Data Context Design
|
|
12
|
+
|
|
13
|
+
- Keep DbContext classes focused and cohesive
|
|
14
|
+
- Use constructor injection for configuration options
|
|
15
|
+
- Override OnModelCreating for fluent API configuration
|
|
16
|
+
- Separate entity configurations using IEntityTypeConfiguration
|
|
17
|
+
- Consider using DbContextFactory pattern for console apps or tests
|
|
18
|
+
|
|
19
|
+
## Entity Design
|
|
20
|
+
|
|
21
|
+
- Use meaningful primary keys (consider natural vs surrogate keys)
|
|
22
|
+
- Implement proper relationships (one-to-one, one-to-many, many-to-many)
|
|
23
|
+
- Use data annotations or fluent API for constraints and validations
|
|
24
|
+
- Implement appropriate navigational properties
|
|
25
|
+
- Consider using owned entity types for value objects
|
|
26
|
+
|
|
27
|
+
## Performance
|
|
28
|
+
|
|
29
|
+
- Use AsNoTracking() for read-only queries
|
|
30
|
+
- Implement pagination for large result sets with Skip() and Take()
|
|
31
|
+
- Use Include() to eager load related entities when needed
|
|
32
|
+
- Consider projection (Select) to retrieve only required fields
|
|
33
|
+
- Use compiled queries for frequently executed queries
|
|
34
|
+
- Avoid N+1 query problems by properly including related data
|
|
35
|
+
|
|
36
|
+
## Migrations
|
|
37
|
+
|
|
38
|
+
- Create small, focused migrations
|
|
39
|
+
- Name migrations descriptively
|
|
40
|
+
- Verify migration SQL scripts before applying to production
|
|
41
|
+
- Consider using migration bundles for deployment
|
|
42
|
+
- Add data seeding through migrations when appropriate
|
|
43
|
+
|
|
44
|
+
## Querying
|
|
45
|
+
|
|
46
|
+
- Use IQueryable judiciously and understand when queries execute
|
|
47
|
+
- Prefer strongly-typed LINQ queries over raw SQL
|
|
48
|
+
- Use appropriate query operators (Where, OrderBy, GroupBy)
|
|
49
|
+
- Consider database functions for complex operations
|
|
50
|
+
- Implement specifications pattern for reusable queries
|
|
51
|
+
|
|
52
|
+
## Change Tracking & Saving
|
|
53
|
+
|
|
54
|
+
- Use appropriate change tracking strategies
|
|
55
|
+
- Batch your SaveChanges() calls
|
|
56
|
+
- Implement concurrency control for multi-user scenarios
|
|
57
|
+
- Consider using transactions for multiple operations
|
|
58
|
+
- Use appropriate DbContext lifetimes (scoped for web apps)
|
|
59
|
+
|
|
60
|
+
## Security
|
|
61
|
+
|
|
62
|
+
- Avoid SQL injection by using parameterized queries
|
|
63
|
+
- Implement appropriate data access permissions
|
|
64
|
+
- Be careful with raw SQL queries
|
|
65
|
+
- Consider data encryption for sensitive information
|
|
66
|
+
- Use migrations to manage database user permissions
|
|
67
|
+
|
|
68
|
+
## Testing
|
|
69
|
+
|
|
70
|
+
- Use in-memory database provider for unit tests
|
|
71
|
+
- Create separate testing contexts with SQLite for integration tests
|
|
72
|
+
- Mock DbContext and DbSet for pure unit tests
|
|
73
|
+
- Test migrations in isolated environments
|
|
74
|
+
- Consider snapshot testing for model changes
|
|
75
|
+
|
|
76
|
+
When reviewing my EF Core code, identify issues and suggest improvements that follow these best practices.
|