Two files, one repository
AndreasKarz/Vibe-Coding-Dev-Setup ships 2 formats across 5 indexed files. The question worth asking is whether the second one says anything the first does not.
| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 9 | 7 | 0% |
| Commands | 0 | 1 | 0 | 0% |
| Section tags | 0 | 3 | 3 | 0% |
What each file covers
Sections
0 shared · 9 only in A · 7 only in B- − Backend Developer Agent
- − Trust Boundary
- − Non-Negotiable Patterns
- − PR Naming (Conventional Commits)
- − Workflow
- − Delegate to Specialized Agents
- − Delegate to Skills
- − Important Resources
- − Quick Checklist Before Each PR
- + GraphQL Layer Rules
- + Layer Separation
- + Implementation-First Approach
- + Attribute Stacking Order
- + DataLoader Convention
- + Type Registration
- + Resolver Parameters
Commands
0 shared · 1 only in A · 0 only in B- − git-specialist
Section tags
0 shared · 3 only in A · 3 only in B- − code-style
- − git-pr
- − agent-behaviour
- + types
- + api
- + do-not
Line diff
AndreasKarz/Vibe-Coding-Dev-Setup · .github/AGENTS.md
@@ −1 @@
1# Backend Developer Agent
2
3<!-- TODO: Replace with your project name and description -->
4Senior Backend Engineer for the central backend mono-repository. Runtime: .NET 9 LTS, C# 13.
5
6Architecture, coding standards, layer definitions, and technology stack are defined in `general.instructions.md` (always loaded). Testing conventions are in `tests.instructions.md` (loaded for test files). Do not duplicate that content — reference it.
7
8---
9
10## Trust Boundary
11
12Defined in `general.instructions.md` (always loaded). All agents inherit the same trust boundary — do not redefine it.
13
14---
15
16## Non-Negotiable Patterns
17
18- **Outbox Pattern** for event publishing (no direct Service Bus calls)
19- **DataLoader** for N+1 query prevention in GraphQL layer
20- **ID<T>** for strongly-typed IDs
21- **Mutation Payload** pattern for GraphQL mutations
22- **Event Versioning** for domain events
23
24## PR Naming (Conventional Commits)
25
26```
27<type>(<scope>): <description>
28```
29- **Types**: feat, fix, build, chore, docs, style, refactor, test
30- **Scope**: Microservice name or `All`, `Tools`
31
32---
33
34## Workflow
35
361. **Understand before coding** — read relevant instructions, skills, and context in the affected service
372. **Implement incrementally** — small, compilable steps; adjust tests after each step; no "Big Bang" PRs
383. **Always test** — local testing is mandatory before PR
394. **Live documentation** — reference existing docs; document architectural decisions
40
41---
42
43## Delegate to Specialized Agents
44
45| Agent | Invoke For |
46|-------|------------|
47| `C# Expert` | General C#/.NET design, patterns, performance, async |
48| `Debug Expert` | Build errors, runtime exceptions, GraphQL issues, MassTransit failures |
49| `DevOps Expert` | Pipelines, Docker, Helm, K8s, environment promotion |
50| `MongoDB Expert` | MongoDB analysis, indexing, query optimization, live cluster inspection |
51| `MS-SQL Expert` | SQL Server analysis, execution plans, stored procedure optimization |
52| `API Stitching Expert` | Schema stitching, QueryDelegationRewriter, gateway routing |
53| `HotChocolate Expert` | Advanced HotChocolate schema design, filtering/sorting/projections, subscriptions, performance, migration |
54
55## Delegate to Skills
56
57| Skill | Invoke For |
58|-------|------------|
59| `backend-developer` | HotChocolate resolvers, MassTransit consumers, data pipeline integration, service startup |
60| `code-reviewer` | Strict code review following project standards |
61| `database-specialist` | Data pipeline implementation: change-tracker, data-loader, repository code |
62| `devops-specialist` | Pipeline templates, Helm patterns, environment-specific configuration |
63| `service-scaffolder` | Scaffold a new domain microservice end-to-end |
64| `penetration-tester` | Security assessments, OWASP, vulnerability analysis |
65| `email-template-developer` | Handlebars notification templates, visual testing |
66| `hotchocolate-specialist` | Deep HotChocolate v15 API expertise, schema design, advanced features, self-learning from official docs |
67| `git-specialist` | Git CLI mastery: branching, rebasing, recovery, bisect, worktrees, history rewriting, performance, hooks, advanced tricks |
68
69---
70
71## Important Resources
72
73<!-- TODO: Replace with your actual project links -->
74| Resource | Link |
75|----------|------|
76| Main Repository | `<!-- TODO: Add link to your main backend repository -->` |
77| Architecture Diagram | `<!-- TODO: Add link to your architecture diagram -->` |
78| Developer Handbook | `<!-- TODO: Add link to your developer handbook/wiki -->` |
79| Data Pipeline Repo | `<!-- TODO: Add link to your data pipeline repository, if applicable -->` |
80| SonarCloud | `<!-- TODO: Add link to your SonarCloud project -->` |
81
82---
83
84## Quick Checklist Before Each PR
85
86- [ ] Local tests pass
87- [ ] PR title follows Conventional Commits
88- [ ] Outbox pattern used (if publishing events)
89- [ ] DataLoader used (if GraphQL queries)
90- [ ] No N+1 queries
91- [ ] No secrets in code
92- [ ] Input validation present
93
AndreasKarz/Vibe-Coding-Dev-Setup · .github/instructions/graphql.instructions.md
@@ +1 @@
1---
2applyTo: "**/GraphQL/**/*.cs"
3---
4
5# GraphQL Layer Rules
6
7These rules apply exclusively to the `GraphQL` project layer.
8
9## Layer Separation
10- **Zero business logic** — resolvers delegate to `Core` services
11- HotChocolate packages (`HotChocolate.*`) belong in this layer only — never reference them from `Core`, `DataAccess`, or `Worker`
12- Input/Output types are defined here, separate from domain entities in `Abstractions`
13
14## Implementation-First Approach
15- Use annotation-based (implementation-first) type definitions — not schema-first SDL
16- Leverage HotChocolate's built-in mutation conventions (`[UseMutationConvention]` + `[Error<T>]`) for consistent error handling
17
18## Attribute Stacking Order
19When combining data attributes on a resolver, stack in this exact order (top to bottom):
20
21```csharp
22[UsePaging] // 1. Pagination (outermost)
23[UseProjection] // 2. Projection
24[UseSorting] // 3. Sorting
25[UseFiltering] // 4. Filtering (innermost)
26```
27
28Wrong order causes silent misbehavior.
29
30## DataLoader Convention
31- Name: `{Entity}By{Key}DataLoader`
32- Every resolver that fetches child entities must use a DataLoader — no `GetByIdAsync` in a loop
33- DataLoaders live in this layer, not in `Core`
34
35## Type Registration
36- Ensure `AddTypes()` includes all required types
37- Use `[Module]` attribute for automatic type discovery where applicable
38
39## Resolver Parameters
40- Use `[Service]` attribute on injected service parameters
41- Use `[Parent]` attribute in type extension resolvers
42- Always propagate `CancellationToken`
43
@@ −1 +1 @@
1−# Backend Developer Agent
2−
3−<!-- TODO: Replace with your project name and description -->
4−Senior Backend Engineer for the central backend mono-repository. Runtime: .NET 9 LTS, C# 13.
5−
6−Architecture, coding standards, layer definitions, and technology stack are defined in `general.instructions.md` (always loaded). Testing conventions are in `tests.instructions.md` (loaded for test files). Do not duplicate that content — reference it.
7−
81 ---
2+applyTo: "**/GraphQL/**/*.cs"
3+---
94
10−## Trust Boundary
5+# GraphQL Layer Rules
116
12−Defined in `general.instructions.md` (always loaded). All agents inherit the same trust boundary — do not redefine it.
7+These rules apply exclusively to the `GraphQL` project layer.
138
14−---
9+## Layer Separation
10+- **Zero business logic** — resolvers delegate to `Core` services
11+- HotChocolate packages (`HotChocolate.*`) belong in this layer only — never reference them from `Core`, `DataAccess`, or `Worker`
12+- Input/Output types are defined here, separate from domain entities in `Abstractions`
1513
16−## Non-Negotiable Patterns
14+## Implementation-First Approach
15+- Use annotation-based (implementation-first) type definitions — not schema-first SDL
16+- Leverage HotChocolate's built-in mutation conventions (`[UseMutationConvention]` + `[Error<T>]`) for consistent error handling
1717
18−- **Outbox Pattern** for event publishing (no direct Service Bus calls)
19−- **DataLoader** for N+1 query prevention in GraphQL layer
20−- **ID<T>** for strongly-typed IDs
21−- **Mutation Payload** pattern for GraphQL mutations
22−- **Event Versioning** for domain events
18+## Attribute Stacking Order
19+When combining data attributes on a resolver, stack in this exact order (top to bottom):
2320
24−## PR Naming (Conventional Commits)
25−
21+```csharp
22+[UsePaging] // 1. Pagination (outermost)
23+[UseProjection] // 2. Projection
24+[UseSorting] // 3. Sorting
25+[UseFiltering] // 4. Filtering (innermost)
2626 ```
27−<type>(<scope>): <description>
28−```
29−- **Types**: feat, fix, build, chore, docs, style, refactor, test
30−- **Scope**: Microservice name or `All`, `Tools`
3127
32−---
28+Wrong order causes silent misbehavior.
3329
34−## Workflow
30+## DataLoader Convention
31+- Name: `{Entity}By{Key}DataLoader`
32+- Every resolver that fetches child entities must use a DataLoader — no `GetByIdAsync` in a loop
33+- DataLoaders live in this layer, not in `Core`
3534
36−1. **Understand before coding** — read relevant instructions, skills, and context in the affected service
37−2. **Implement incrementally** — small, compilable steps; adjust tests after each step; no "Big Bang" PRs
38−3. **Always test** — local testing is mandatory before PR
39−4. **Live documentation** — reference existing docs; document architectural decisions
35+## Type Registration
36+- Ensure `AddTypes()` includes all required types
37+- Use `[Module]` attribute for automatic type discovery where applicable
4038
41−---
42−
43−## Delegate to Specialized Agents
44−
45−| Agent | Invoke For |
46−|-------|------------|
47−| `C# Expert` | General C#/.NET design, patterns, performance, async |
48−| `Debug Expert` | Build errors, runtime exceptions, GraphQL issues, MassTransit failures |
49−| `DevOps Expert` | Pipelines, Docker, Helm, K8s, environment promotion |
50−| `MongoDB Expert` | MongoDB analysis, indexing, query optimization, live cluster inspection |
51−| `MS-SQL Expert` | SQL Server analysis, execution plans, stored procedure optimization |
52−| `API Stitching Expert` | Schema stitching, QueryDelegationRewriter, gateway routing |
53−| `HotChocolate Expert` | Advanced HotChocolate schema design, filtering/sorting/projections, subscriptions, performance, migration |
54−
55−## Delegate to Skills
56−
57−| Skill | Invoke For |
58−|-------|------------|
59−| `backend-developer` | HotChocolate resolvers, MassTransit consumers, data pipeline integration, service startup |
60−| `code-reviewer` | Strict code review following project standards |
61−| `database-specialist` | Data pipeline implementation: change-tracker, data-loader, repository code |
62−| `devops-specialist` | Pipeline templates, Helm patterns, environment-specific configuration |
63−| `service-scaffolder` | Scaffold a new domain microservice end-to-end |
64−| `penetration-tester` | Security assessments, OWASP, vulnerability analysis |
65−| `email-template-developer` | Handlebars notification templates, visual testing |
66−| `hotchocolate-specialist` | Deep HotChocolate v15 API expertise, schema design, advanced features, self-learning from official docs |
67−| `git-specialist` | Git CLI mastery: branching, rebasing, recovery, bisect, worktrees, history rewriting, performance, hooks, advanced tricks |
68−
69−---
70−
71−## Important Resources
72−
73−<!-- TODO: Replace with your actual project links -->
74−| Resource | Link |
75−|----------|------|
76−| Main Repository | `<!-- TODO: Add link to your main backend repository -->` |
77−| Architecture Diagram | `<!-- TODO: Add link to your architecture diagram -->` |
78−| Developer Handbook | `<!-- TODO: Add link to your developer handbook/wiki -->` |
79−| Data Pipeline Repo | `<!-- TODO: Add link to your data pipeline repository, if applicable -->` |
80−| SonarCloud | `<!-- TODO: Add link to your SonarCloud project -->` |
81−
82−---
83−
84−## Quick Checklist Before Each PR
85−
86−- [ ] Local tests pass
87−- [ ] PR title follows Conventional Commits
88−- [ ] Outbox pattern used (if publishing events)
89−- [ ] DataLoader used (if GraphQL queries)
90−- [ ] No N+1 queries
91−- [ ] No secrets in code
92−- [ ] Input validation present
39+## Resolver Parameters
40+- Use `[Service]` attribute on injected service parameters
41+- Use `[Parent]` attribute in type extension resolvers
42+- Always propagate `CancellationToken`
9343
