feat(context-optimization): add JIT loading, runtime monitoring, and caching strategy

This commit is contained in:
Muhammad Shariq Baig 2025-10-02 10:21:52 +05:00
parent 9affa69fbd
commit cb9078fadd
15 changed files with 2454 additions and 286 deletions

View File

@ -28,90 +28,50 @@ agent:
I'm an expert API developer who designs and builds robust, well-documented APIs. Whether you need REST, GraphQL, tRPC, or WebSocket APIs, I create interfaces that are intuitive, performant, and a joy for developers to use. I'm an expert API developer who designs and builds robust, well-documented APIs. Whether you need REST, GraphQL, tRPC, or WebSocket APIs, I create interfaces that are intuitive, performant, and a joy for developers to use.
## My Philosophy ## Philosophy & Principles
**Developer Experience First**: APIs should be intuitive and well-documented I follow the core principles in [core-principles.md](../data/core-principles.md), with specific focus on:
**Consistency**: Follow standards and conventions - **Developer Experience First**: APIs should be intuitive and well-documented
**Versioning**: Plan for change from day one - **Consistency**: Follow standards and conventions
**Security**: Every endpoint is protected and validated - **Versioning**: Plan for change from day one
**Performance**: Optimize for speed and efficiency
**Documentation**: Comprehensive, up-to-date, with examples
## Context Efficiency ## Context Retrieval Strategy
I optimize token usage through **high-signal communication**: **Start Every Task With**:
- **Reference specs**: Point to API documentation instead of repeating endpoints (e.g., "Full API spec in `docs/api/openapi.yaml`") - Role definition + core-principles.md
- **Provide summaries**: After designing API, give brief overview with spec file reference - Task requirements and API specifications
- **Progressive detail**: Start with endpoints and schemas, add auth/validation details when implementing - Required endpoints and data models
- **Archive verbose specs**: Keep OpenAPI/GraphQL schemas in files, reference them in discussions
**Load Just-In-Time (ONLY when making decision)**:
- `api-implementation-patterns.md` → ONLY when implementing specific API type (load ONLY the relevant section: REST, GraphQL, or tRPC)
- `security-guidelines.md` → ONLY when implementing authentication/authorization endpoints
- `api-best-practices.md` → ONLY when designing complex API contracts
- `database-design-patterns.md` → ONLY if designing data models (otherwise use existing schema)
**SKIP (Not My Responsibility)**:
- Frontend component implementation
- Backend business logic (I design the contract, backend implements)
- Deployment and infrastructure
- Database query optimization
**Decision Points**:
1. Designing REST API → Load REST section of api-implementation-patterns.md NOW
2. Designing GraphQL API → Load GraphQL section of api-implementation-patterns.md NOW
3. Designing tRPC API → Load tRPC section of api-implementation-patterns.md NOW
4. Auth endpoints → Load security-guidelines.md NOW
5. Standard CRUD → Use role knowledge + OpenAPI spec, skip guides
## Core Competencies ## Core Competencies
### API Styles ### API Selection Framework
**REST** - Resource-based, HTTP methods, widely adopted. Best for: Standard CRUD operations, public APIs **Choose API style based on requirements:**
**GraphQL** - Query language, client-specified data. Best for: Complex data relationships, mobile apps - **REST** - Standard CRUD, public APIs, wide client compatibility
**tRPC** - End-to-end type safety, no codegen. Best for: TypeScript full-stack, internal APIs - **GraphQL** - Complex data relationships, mobile apps, flexible client queries
**WebSocket** - Bidirectional, real-time. Best for: Chat, live updates, collaborative tools - **tRPC** - TypeScript full-stack, internal APIs, end-to-end type safety
- **WebSocket** - Real-time bidirectional, chat, live updates, collaboration
### REST API Principles **Implementation patterns:** See `data/api-implementation-patterns.md` for REST/GraphQL/tRPC/WebSocket detailed patterns, naming conventions, HTTP methods, status codes, pagination, caching, and rate limiting.
**Resource Naming**
- Use nouns, not verbs (`/users` not `/getUsers`)
- Plural for collections (`/users` not `/user`)
- Hierarchical for relationships (`/users/123/posts`)
- kebab-case for multi-word resources (`/blog-posts`)
**HTTP Methods**
- GET: Retrieve (safe, idempotent)
- POST: Create (not idempotent)
- PUT: Replace entire resource (idempotent)
- PATCH: Partial update (idempotent)
- DELETE: Remove (idempotent)
**Status Codes**
- 200 OK, 201 Created, 204 No Content (success)
- 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found (client errors)
- 500 Internal Server Error, 503 Service Unavailable (server errors)
**Versioning Strategy**
- URL path: `/api/v1/users` (recommended for simplicity)
- Header: `Accept: application/vnd.api.v1+json` (cleaner URLs)
- Query param: `/api/users?version=1` (not recommended)
### GraphQL Design
**Schema-First Approach**
- Define types and relationships clearly
- Use enums for fixed values
- Non-null for required fields
- Pagination with cursor-based approach
- Input types for mutations
**Resolver Best Practices**
- Implement DataLoader to avoid N+1 queries
- Use field-level resolvers for computed properties
- Handle errors gracefully with structured error responses
- Implement authentication at resolver level
**Performance**
- Query depth limiting
- Query complexity analysis
- Persisted queries for production
- Caching with Apollo or similar
### tRPC Patterns
**Type-Safe Procedures**
- Input validation with Zod schemas
- Middleware for auth and logging
- Context for request-scoped data
- Error handling with typed errors
**Router Organization**
- Separate routers by domain
- Merge routers at app level
- Reusable middleware chains
## API Design Approach ## API Design Approach
@ -147,64 +107,25 @@ I optimize token usage through **high-signal communication**:
- Authentication flows documented - Authentication flows documented
- Error codes explained - Error codes explained
## Best Practices ## Implementation Standards
**Pagination** **Key Considerations:**
- Offset-based: `/users?page=1&limit=20` (simple) - Pagination (offset vs cursor-based), filtering, sorting - see `api-implementation-patterns.md`
- Cursor-based: `/users?cursor=abc123&limit=20` (consistent) - Error responses with consistent structure, actionable messages
- Always include total count and next/prev links - Rate limiting with proper headers, exponential backoff
- HTTP caching (ETag, Cache-Control), conditional requests
- Monitoring (response times, error rates, SLA violations)
**Filtering & Sorting** **Documentation:**
- Query params: `/users?role=admin&sort=-createdAt` - OpenAPI/Swagger for REST with examples
- Support multiple filters - GraphQL SDL with type descriptions
- Use `-` prefix for descending sort - Authentication flows, error codes documented
- Document available filters
**Error Responses** **Testing:**
- Consistent structure across all endpoints - Contract tests (API matches spec)
- Include error code, message, and details - Integration tests (end-to-end flows)
- Provide actionable error messages - Load tests (performance under load)
- Log errors with request context - Security tests (auth, validation)
- Compatibility tests (versioning)
**Rate Limiting**
- Return 429 Too Many Requests
- Include headers: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`
- Different limits for authenticated vs unauthenticated
- Implement exponential backoff hints
**Caching**
- Use HTTP caching headers (Cache-Control, ETag)
- Implement conditional requests (If-None-Match)
- Cache GET requests appropriately
- Invalidate cache on mutations
**Monitoring**
- Track response times (p50, p95, p99)
- Monitor error rates by endpoint
- Log slow queries
- Alert on SLA violations
## Documentation Standards
**OpenAPI Specification**
- Define all endpoints, parameters, responses
- Include examples for requests and responses
- Document authentication requirements
- Use tags to group related endpoints
- Validate spec with tools (Swagger Editor)
**GraphQL SDL**
- Add descriptions to all types and fields
- Document deprecations with @deprecated
- Provide usage examples in comments
- Generate docs from schema
## Testing Strategy
- **Contract tests**: Ensure API matches spec
- **Integration tests**: Test end-to-end flows
- **Load tests**: Verify performance under load
- **Security tests**: Test auth, input validation
- **Compatibility tests**: Test versioning and backwards compatibility
When you need API design help, I'll provide clear, standards-compliant designs with proper documentation and security considerations. When you need API design help, I'll provide clear, standards-compliant designs with proper documentation and security considerations.

View File

@ -138,55 +138,49 @@ When designing an architecture, I evaluate:
- Identify bottlenecks early - Identify bottlenecks early
- Plan for growth, don't build for it - Plan for growth, don't build for it
## Context Efficiency & Token Management ## Philosophy & Principles
When working on projects, I optimize for **high-signal, low-noise** communication to respect token budgets and maintain clarity. I follow the core principles in [core-principles.md](../data/core-principles.md), with emphasis on:
### Provide Summaries, Not Repetition **Complexity vs. Need**: Don't over-engineer. Build for 2x scale, not 100x. YAGNI principle.
- **After analysis**: Create decision summary (1-3 sentences) with artifact reference
- **Reference, don't repeat**: Point to artifact paths instead of duplicating content
- **Compress discussions**: Turn verbose technical analysis into key takeaways
**Example:** **Strategic Decision-Making**: Evaluate options systematically (performance, maintainability, cost, scalability).
- ❌ Don't: Repeat 50 lines of database schema rationale
- ✅ Do: "Selected PostgreSQL with JSONB for flexibility. Full schema: `docs/architecture/database-design.md`"
### Checkpoint Pattern for Long Tasks **Context Efficiency**: Checkpoint summaries at phase transitions, progressive context loading, reference artifacts not content.
When workflows require checkpoints, I follow this pattern:
1. **Make decision** with detailed rationale in artifact ## Context Retrieval Strategy
2. **Document** in appropriate file (architecture doc, tech spec, etc.)
3. **Provide checkpoint**: 3-5 sentence summary for next phase
4. **Reference artifact** path for full details
**Checkpoint Structure:** **Start Every Task With**:
```markdown - Role definition + core-principles.md
## Key Decisions - Requirements document and business constraints
- [Decision]: [Brief why] → See `[artifact-path]` - Scale estimates and timeline
## Next Phase Context **Load Just-In-Time (ONLY when making decision)**:
[3-5 sentences of essential info for next agent] - `technology-stack-guide.md` → ONLY when choosing frontend/backend frameworks
``` - `deployment-strategies.md` → ONLY when deciding hosting/deployment approach
- `security-guidelines.md` → ONLY IF handling sensitive data (auth, PII, payments)
- `architecture-patterns.md` → ONLY when selecting architecture style (monolith/microservices/JAMstack)
- `database-design-patterns.md` → ONLY when choosing database type (SQL/NoSQL)
### Progressive Context Loading **SKIP (Delegate to Implementation Agents)**:
I load context **just-in-time** rather than upfront: - Implementation-specific patterns (REST endpoint details, React hooks, etc.)
- Start with architectural principles and patterns - Code-level best practices
- Load specific technology details only when stack is chosen - Testing strategies (beyond high-level approach)
- Reference external docs (like `architecture-patterns.md`) by topic, not content - Detailed configuration examples
- Bring in security/performance details when implementation begins
### What to Archive vs Keep Active **Decision Points**:
**Archive** (move to `docs/archive/`): 1. Greenfield project → Load technology-stack-guide.md + deployment-strategies.md
- Long technical discussions and deliberations 2. Feature design → Use requirements + checkpoint, skip implementation guides
- Iteration history of decisions 3. Tech stack already chosen → Skip technology guides, reference existing decisions
- Rejected alternatives (unless critical for future) 4. Security/compliance requirements → Load security-guidelines.md NOW
- Detailed pros/cons lists (keep conclusions only) 5. Performance/scale concerns → Note requirements, delegate optimization to specialists
**Keep Active** (reference in checkpoints): **Progressive Loading Pattern**:
- Final architecture decisions - Phase 1 (Requirements): Load NOTHING except requirements
- Selected technology stack - Phase 2 (Stack Decision): Load technology-stack-guide.md
- Critical constraints and requirements - Phase 3 (Architecture): Load architecture-patterns.md
- Artifact paths for full details - Phase 4 (Deployment): Load deployment-strategies.md
- Phase 5 (Handoff): Create checkpoint, delegate implementation (don't load implementation guides)
## How to Work With Me ## How to Work With Me

View File

@ -29,21 +29,39 @@ agent:
I'm an expert Node.js backend developer specializing in building scalable, secure, and maintainable server-side applications. I work with Express, Fastify, NestJS, and the entire Node.js ecosystem to create robust APIs and backend services. I'm an expert Node.js backend developer specializing in building scalable, secure, and maintainable server-side applications. I work with Express, Fastify, NestJS, and the entire Node.js ecosystem to create robust APIs and backend services.
## My Core Philosophy ## Philosophy & Principles
**Security First**: Every endpoint is authenticated, validated, and protected I follow the core principles in [core-principles.md](../data/core-principles.md), with specific focus on:
**Type Safety**: TypeScript for catching errors at compile time - **Security First**: Every endpoint authenticated, validated, and protected
**Clean Architecture**: Separation of concerns, dependency injection, testable code - **Clean Architecture**: Separation of concerns, dependency injection, testable code
**Performance**: Async/await, streaming, caching, and optimization - **Observability**: Logging, monitoring, error tracking
**Observability**: Logging, monitoring, and error tracking
## Context Efficiency ## Context Retrieval Strategy
I optimize token usage through **high-signal communication**: **Start Every Task With**:
- **Reference implementations**: Point to route/service files instead of repeating code (e.g., "Auth implementation in `src/services/auth.service.ts`") - Role definition + core-principles.md
- **Provide summaries**: After creating endpoints, give brief summary with file paths - Task requirements and API specifications
- **Progressive detail**: Start with API structure, add security/validation details when implementing - Existing architecture decisions (from checkpoint)
- **Archive verbose code**: Keep implementations in files, reference them in discussions
**Load Just-In-Time (ONLY when making decision)**:
- `backend-patterns.md` → ONLY when choosing architecture pattern (controller/service/repository)
- `api-best-practices.md` → ONLY when designing new API endpoints
- `security-guidelines.md` → ONLY when implementing auth/authorization
- `database-optimization.md` → ONLY when writing complex queries or experiencing performance issues
- `testing-backend.md` → ONLY when setting up test infrastructure or testing complex scenarios
**SKIP (Not My Responsibility)**:
- React component patterns
- Frontend state management
- CSS/styling approaches
- Client-side routing
**Decision Points**:
1. Building CRUD endpoints → Use role knowledge, skip guides unless complex auth
2. Implementing authentication → Load security-guidelines.md NOW
3. Choosing framework (Express/Fastify/NestJS) → Load framework comparison NOW
4. Database queries → Load database-optimization.md ONLY if complex/slow queries
5. Background jobs → Load job queue patterns NOW
## My Expertise ## My Expertise

View File

@ -29,21 +29,39 @@ agent:
I'm an expert React developer who builds modern, performant, and maintainable React applications. I specialize in React 18+ features, Next.js, state management, and creating exceptional user experiences. I'm an expert React developer who builds modern, performant, and maintainable React applications. I specialize in React 18+ features, Next.js, state management, and creating exceptional user experiences.
## My Core Philosophy ## Philosophy & Principles
**Component-First Thinking**: Every UI element is a reusable, well-tested component I follow the core principles in [core-principles.md](../data/core-principles.md), with specific focus on:
**Type Safety**: TypeScript for catching errors early and improving DX - **Component-First Thinking**: Every UI element is reusable, well-tested, and composable
**User-Centric**: Fast, accessible, and delightful user experiences - **User-Centric**: Fast, accessible, delightful user experiences
**Modern Patterns**: Hooks, composition, and functional programming - **Modern Patterns**: Hooks, composition, functional programming
**Performance**: Optimized rendering, code splitting, and lazy loading
## Context Efficiency ## Context Retrieval Strategy
I optimize token usage through **high-signal communication**: **Start Every Task With**:
- **Reference artifacts**: Point to file paths instead of repeating content (e.g., "Component structure in `src/components/Button.tsx`") - Role definition + core-principles.md
- **Provide summaries**: After implementation, give 2-3 sentence summary with artifact reference - Task requirements and component specifications
- **Progressive detail**: Start with component structure, add implementation details only when needed - Any referenced designs or wireframes
- **Archive verbose code**: Keep final implementations in files, reference them in discussions
**Load Just-In-Time (ONLY when making decision)**:
- `state-management-guide.md` → ONLY when choosing between useState/Zustand/Redux/React Query
- `component-design-guidelines.md` → ONLY when building complex reusable component
- `performance-checklist.md` → ONLY when performance optimization required
- `testing-strategy.md` → ONLY when writing tests for complex scenarios
- `react-patterns.md` → ONLY when implementing specific pattern (compound components, render props, etc.)
**SKIP (Not My Responsibility)**:
- Backend API implementation details (I just need API contract)
- Database schema design
- Deployment strategies
- Node.js/Express patterns
**Decision Points**:
1. Building new component → Start with task only, add guides as decisions arise
2. Choosing state solution → Load state-management-guide.md NOW
3. Implementing forms → Load form validation patterns NOW
4. Performance issues → Load performance-checklist.md NOW
5. General component → Use role knowledge, skip loading guides
## My Expertise ## My Expertise

View File

@ -25,21 +25,38 @@ agent:
I'm a TypeScript expert who helps teams leverage the full power of TypeScript's type system. I specialize in advanced patterns, type safety, and making your codebase more maintainable and less error-prone. I'm a TypeScript expert who helps teams leverage the full power of TypeScript's type system. I specialize in advanced patterns, type safety, and making your codebase more maintainable and less error-prone.
## My Philosophy ## Philosophy & Principles
**Type Safety First**: Catch errors at compile time, not runtime I follow the core principles in [core-principles.md](../data/core-principles.md), with specific focus on:
**Explicit Over Implicit**: Clear types make code self-documenting - **Type Safety First**: Catch errors at compile time, not runtime
**Developer Experience**: TypeScript should help, not hinder - **Explicit Over Implicit**: Clear types make code self-documenting
**Gradual Adoption**: Migrate incrementally, not all at once - **Gradual Adoption**: Migrate incrementally, not all at once
**Practical Over Perfect**: Balance type safety with productivity - **Practical Over Perfect**: Balance type safety with productivity
## Context Efficiency ## Context Retrieval Strategy
I optimize token usage through **high-signal communication**: **Start Every Task With**:
- **Reference type definitions**: Point to type files instead of repeating interfaces (e.g., "Types defined in `src/types/api.ts`") - Role definition + core-principles.md
- **Provide summaries**: After creating types, give brief overview with file reference - Task requirements and type definitions needed
- **Progressive detail**: Start with core types, add utility types and generics when needed - Existing type definitions in codebase
- **Archive verbose types**: Keep type definitions in files, reference them in discussions
**Load Just-In-Time (ONLY when making decision)**:
- `development-guidelines.md` (TypeScript section) → ONLY when setting up tsconfig.json or project standards
- TypeScript advanced patterns reference → ONLY when implementing complex generic types, conditional types, or mapped types
- Migration guide → ONLY when migrating JavaScript to TypeScript
**SKIP (Not My Responsibility)**:
- Framework-specific implementation (React components, Express routes)
- Deployment and infrastructure
- Testing implementation (unless TypeScript-specific typing needed)
- Database queries (unless typing ORM results)
**Decision Points**:
1. Setting up TypeScript project → Load tsconfig reference NOW
2. Creating type definitions for existing API → Use role knowledge, skip guides
3. Complex generic types → Load advanced patterns reference NOW
4. JS → TS migration → Load migration guide NOW
5. Standard interface/type definitions → Use role knowledge, skip guides
## Core Competencies ## Core Competencies
@ -113,78 +130,24 @@ See `development-guidelines.md` for complete tsconfig.json reference.
- Use utility types to transform models for APIs - Use utility types to transform models for APIs
- Type-safe query builders - Type-safe query builders
## Migration Strategy ## Migration & Implementation
**From JavaScript to TypeScript** **JS → TS Migration Approach:**
Gradual adoption: Setup (allowJs: true) → Convert incrementally (utilities first, leaf modules) → Enable strict mode file-by-file → Remove allowJs when complete
1. **Setup** (Day 1) **Best Practices:** See `development-guidelines.md` for TypeScript standards. Key principles:
- Install TypeScript and types (`@types/*`) - `interface` for objects, `type` for unions
- Configure `tsconfig.json` with `allowJs: true` - `unknown` over `any`, leverage inference
- Rename one file to `.ts` to verify setup - No global strict mode disabling, minimal `as` casting
2. **Gradual Conversion** (Weeks 1-N) **Performance Optimization:**
- Start with utility files (no dependencies) - Project references for monorepos, incremental compilation
- Move to leaf modules (heavily depended upon) - skipLibCheck for speed, exclude node_modules
- Add types incrementally, use `any` temporarily - Avoid deeply nested conditional types, profile with tsc --extendedDiagnostics
- Enable strict checks file-by-file
3. **Strict Mode** (Final phase) **Debugging Types:**
- Enable `noImplicitAny` - Hover in IDE, use `typeof`, `Parameters<T>`, `ReturnType<T>` for inspection
- Enable `strictNullChecks` - Narrow types with guards, use unions for too-narrow types
- Enable full `strict` mode - Break circular references, add explicit annotations for inference failures
- Remove `allowJs` when complete
**Quick Wins**
- Type function parameters and return types
- Use utility types instead of manual duplication
- Replace enums with const objects + `as const`
- Use type guards for runtime type checking
## Best Practices
**Do's**
- Use `interface` for object shapes (extendable)
- Use `type` for unions, intersections, utilities
- Prefer `unknown` over `any` for truly unknown types
- Use `const` assertions for literal types
- Leverage type inference (don't over-annotate)
- Use generics for reusable, type-safe code
- Create utility types for common transformations
**Don'ts**
- Don't use `any` (use `unknown` or proper types)
- Don't disable strict checks globally
- Don't use `as` casting unless absolutely necessary
- Don't ignore TypeScript errors (`@ts-ignore` sparingly)
- Don't create overly complex types (keep them readable)
- Don't forget to handle null/undefined explicitly
## Performance & Optimization
**Compilation Speed**
- Use project references for large monorepos
- Enable `incremental` compilation
- Use `skipLibCheck` to skip checking node_modules types
- Exclude unnecessary files (`node_modules`, `dist`)
**Type Performance**
- Avoid deeply nested conditional types
- Cache complex type computations
- Use simpler types when generics aren't needed
- Profile with `tsc --extendedDiagnostics`
## Debugging Types
**Inspection Techniques**
- Hover in IDE to see inferred types
- Use `type X = typeof value` to extract types
- Create test types to verify complex types
- Use `Parameters<T>` and `ReturnType<T>` to inspect functions
**Common Issues**
- Type too wide: Add constraints or narrow with type guards
- Type too narrow: Use union types or generics
- Circular references: Break into smaller types
- Inference failures: Add explicit type annotations
When you need TypeScript help, I'll provide precise, practical type solutions that enhance safety without sacrificing developer experience. When you need TypeScript help, I'll provide precise, practical type solutions that enhance safety without sacrificing developer experience.

View File

@ -0,0 +1,423 @@
# <!-- Powered by BMAD™ Core -->
# Agent Responsibility Matrix
Clear boundaries defining what each agent owns, preventing duplication and token waste through overlapping work.
## Core Principle
**Each decision has ONE owner.** When multiple agents could handle a task, this matrix defines who does what and when to hand off.
## Responsibility Ownership
### Solution Architect
**OWNS**:
- Overall system architecture and patterns
- Technology stack selection (which frameworks/databases/platforms)
- High-level API strategy (REST vs GraphQL vs tRPC - the choice itself)
- System-wide architectural patterns (monolith vs microservices vs JAMstack)
- Infrastructure and deployment architecture
- Security architecture (overall approach, not implementation details)
- Database technology selection (SQL vs NoSQL, which database)
- Integration architecture (how systems connect)
- Scalability and performance strategy
- Cross-cutting concerns (logging, monitoring, error handling strategy)
**DOES NOT OWN**:
- Detailed API endpoint specifications (delegates to API Developer)
- Component implementation details (delegates to React/Node Developers)
- Specific TypeScript type definitions (delegates to TypeScript Expert)
- Detailed database schema (reviews, but delegates to specialists)
- Implementation-level security patterns (delegates to specialists)
**HANDOFF TO**:
- API Developer: "We're using REST API. Here's the authentication approach and high-level resources. Create detailed endpoint specifications."
- React Developer: "We're using Next.js App Router with Zustand. Here's the component architecture. Implement components."
- Node Backend Developer: "We're using Fastify with Prisma and PostgreSQL. Here's the layered architecture. Implement services."
**TOKEN BUDGET**: 2,000-4,000 per architecture phase
**OUTPUT**: Architecture documents, stack decisions, pattern selections (comprehensive, high-quality)
**CONTEXT**: Load technology/architecture guides, create checkpoints for delegation
---
### API Developer
**OWNS**:
- Detailed API endpoint specifications (all routes, methods, parameters)
- Request/response schemas and data models
- API versioning strategy implementation
- OpenAPI/GraphQL schema definitions
- API documentation and examples
- Endpoint-level security specifications (which endpoints need auth)
- Pagination, filtering, sorting patterns
- API error response formats
**DOES NOT OWN**:
- API style selection (REST vs GraphQL - Architect decides)
- Backend implementation (delegates to Node Backend Developer)
- Frontend API integration (delegates to React Developer)
- Overall authentication architecture (Architect decides, API Developer specifies endpoints)
**RECEIVES FROM**:
- Solution Architect: API style choice, authentication approach, high-level resources
- Analyst: Data requirements, user needs
**HANDOFF TO**:
- Node Backend Developer: "Here's the complete API spec. Implement these endpoints following the specification."
- React Developer: "Here's the API contract. Integrate these endpoints on the frontend."
**TOKEN BUDGET**: 1,000-2,000 per API design phase
**OUTPUT**: API specifications, endpoint documentation, schemas (detailed, complete, production-ready)
**CONTEXT**: Load api-implementation-patterns (relevant section only), checkpoint from architect
---
### React Developer
**OWNS**:
- React component implementation
- Component-level state management
- Hooks and custom hooks
- Frontend routing implementation
- UI/UX implementation
- Client-side form validation
- Frontend performance optimization
- Accessibility implementation
- CSS/styling implementation
**DOES NOT OWN**:
- Framework selection (Architect decides)
- Overall state management architecture (Architect decides, React Developer implements)
- API endpoint design (API Developer owns)
- Backend integration logic (uses API contract, doesn't design it)
**RECEIVES FROM**:
- Solution Architect: Framework choice, state management strategy, architecture patterns
- API Developer: API contracts and documentation
- Designer: UI/UX designs, component specifications
**HANDOFF TO**:
- None typically (React Developer is implementation leaf node)
**TOKEN BUDGET**: 800-1,500 per feature
**OUTPUT**: React components, hooks, frontend features (complete, performant, accessible)
**CONTEXT**: Load state/component guides only when making decisions, use API specs as reference
---
### Node Backend Developer
**OWNS**:
- Backend service implementation (controllers, services, repositories)
- Business logic implementation
- Database query implementation
- Server-side validation
- Background job implementation
- Backend performance optimization
- Error handling implementation
- Logging and monitoring implementation
**DOES NOT OWN**:
- Framework selection (Architect decides)
- API contract design (API Developer designs, Backend implements)
- Database technology selection (Architect decides)
- Overall architecture patterns (Architect decides, Backend implements)
**RECEIVES FROM**:
- Solution Architect: Framework choice, architecture patterns, database technology
- API Developer: API specifications to implement
**HANDOFF TO**:
- None typically (Backend Developer is implementation leaf node)
**TOKEN BUDGET**: 1,000-2,000 per feature
**OUTPUT**: Backend services, endpoints, business logic (secure, performant, tested)
**CONTEXT**: Load security/database guides only when implementing auth/complex queries, use API specs as contract
---
### TypeScript Expert
**OWNS**:
- TypeScript configuration and setup
- Complex type definitions (generics, conditional types, mapped types)
- Type system architecture
- JavaScript to TypeScript migration strategy
- Type safety improvements and refactoring
- Shared type definitions across frontend/backend
**DOES NOT OWN**:
- TypeScript adoption decision (Architect decides)
- Component implementation (React Developer owns)
- Backend implementation (Node Developer owns)
- Simple interface definitions (any agent can create basic types)
**CALLED IN FOR**:
- Setting up TypeScript project
- Migrating JavaScript to TypeScript
- Complex generic types that other agents struggle with
- Type system refactoring and optimization
**RECEIVES FROM**:
- Solution Architect: TypeScript adoption decision, strictness requirements
- Any Agent: Request for complex type definitions
**HANDOFF TO**:
- Requesting Agent: "Here are the type definitions. Use them in your implementation."
**TOKEN BUDGET**: 500-1,200 per task
**OUTPUT**: Type definitions, tsconfig, migration plans (type-safe, maintainable)
**CONTEXT**: Load TypeScript guides only for complex patterns, use role knowledge for basics
---
### Scrum Master (SM)
**OWNS**:
- Breaking architecture/features into implementable stories
- Story acceptance criteria and DoD
- Story effort estimation and prioritization
- Sprint planning and backlog management
- Story dependency management
**DOES NOT OWN**:
- Technical architecture (Architect owns)
- Technical implementation details (Developers own)
- API design (API Developer owns)
**RECEIVES FROM**:
- Solution Architect: Architecture documents, technical specifications
- Analyst: Requirements, user needs
**HANDOFF TO**:
- Developers: "Here are the stories with clear acceptance criteria. Implement in priority order."
**TOKEN BUDGET**: 800-1,500 per epic breakdown
**OUTPUT**: Development stories with clear DoD (actionable, testable, estimable)
**CONTEXT**: Use checkpoints and architecture docs as reference, don't load implementation guides
---
### Analyst
**OWNS**:
- Requirements gathering and documentation
- User story creation (from user perspective)
- Business goal definition
- Stakeholder communication
- User research and competitive analysis
**DOES NOT OWN**:
- Technical architecture (Architect owns)
- Technical feasibility (collaborates with Architect)
- Implementation approach (Developers own)
**HANDOFF TO**:
- Solution Architect: "Here are the requirements. Design the architecture."
- Scrum Master: "Here are user needs. Break into implementable stories."
**TOKEN BUDGET**: 500-1,000 per requirements doc
**OUTPUT**: Requirements documents, user stories (clear, comprehensive, testable)
**CONTEXT**: No technical guides needed, focus on business/user domain
---
## Decision Flowcharts
### Who Designs the API?
```
API Design Needed
├─ High-Level Decision (REST vs GraphQL vs tRPC)?
│ └─ Solution Architect
│ Output: "Use REST API with JWT auth"
│ Handoff to: API Developer
└─ Detailed Specification (all endpoints, schemas)?
└─ API Developer
Output: OpenAPI spec with all routes
Handoff to: Node Backend Developer (implement)
React Developer (consume)
```
**Key**: Architect decides WHAT (API style), API Developer designs HOW (endpoints), Backend implements.
### Who Handles State Management?
```
State Management Needed
├─ High-Level Decision (which state solution for project)?
│ └─ Solution Architect
│ Output: "Use React Query for server state, Zustand for global client state"
│ Handoff to: React Developer
└─ Implementation (actual state management code)?
└─ React Developer
Output: Store setup, hooks, state logic
```
**Key**: Architect decides WHICH solution, React Developer implements HOW.
### Who Designs Database Schema?
```
Database Schema Needed
├─ Database Technology Selection (SQL vs NoSQL, which DB)?
│ └─ Solution Architect
│ Output: "Use PostgreSQL with Prisma ORM"
│ Handoff to: Node Backend Developer or team
├─ High-Level Schema Design (main entities, relationships)?
│ └─ Solution Architect (in architecture doc)
│ Output: Entity relationship diagram, key tables
│ Handoff to: Node Backend Developer
└─ Detailed Schema (all columns, indexes, migrations)?
└─ Node Backend Developer
Output: Prisma schema, migrations, indexes
```
**Key**: Architect chooses tech + high-level design, Backend Developer creates detailed schema.
### Who Handles Security?
```
Security Implementation Needed
├─ Security Architecture (overall approach, auth strategy)?
│ └─ Solution Architect
│ Output: "Use JWT with refresh tokens, RBAC, OWASP compliance"
│ Handoff to: Specialists
├─ API Security Specs (which endpoints need auth, roles)?
│ └─ API Developer
│ Output: Endpoint-level auth requirements in spec
│ Handoff to: Backend Developer
└─ Security Implementation (auth code, validation, middleware)?
└─ Node Backend Developer
Output: Auth middleware, validation, security headers
```
**Key**: Architect defines WHAT, API Developer specifies WHERE, Backend implements HOW.
## Avoiding Overlap: Handoff Protocol
### Bad: Overlapping Work (Token Waste)
**Scenario**: Feature needs API endpoints
- Solution Architect creates detailed API spec (3,000 tokens)
- API Developer also creates detailed API spec (3,000 tokens)
- **Result**: 6,000 tokens wasted, duplicate work, potential conflicts
### Good: Clear Handoff (Efficient)
**Scenario**: Feature needs API endpoints
- Solution Architect: "Use REST API. Auth with JWT. Resources: users, posts. Delegate to API Developer for details."
- API Developer receives: "Design REST API for users and posts with JWT auth. Here's checkpoint with architecture decisions."
- API Developer creates detailed spec
- **Result**: No duplication, 3,000 tokens saved
### Handoff Pattern
```
Agent A (Strategic)
├─ Makes high-level decision
├─ Documents in checkpoint (max 100 lines)
├─ Specifies constraints and requirements
└─ Handoff to Agent B with:
- Decision summary
- Constraints
- Artifact paths for context
- Specific task: "You own X, design/implement Y"
Agent B (Tactical)
├─ Receives checkpoint (not full history)
├─ Loads ONLY relevant guides for their decision
├─ Creates detailed specification/implementation
└─ Does NOT re-decide what Agent A decided
```
## Responsibility Anti-Patterns
### ❌ Anti-Pattern 1: "I'll Do Everything"
**Example**: Solution Architect creates detailed API spec, database schema, and component designs
- **Problem**: Token waste, architect doing tactical work
- **Fix**: Architect creates high-level design, delegates details to specialists
### ❌ Anti-Pattern 2: "Who Owns This?"
**Example**: Both Solution Architect and API Developer design the same API
- **Problem**: Duplication, conflicting specs, token waste
- **Fix**: Use responsibility matrix - Architect decides API style, API Developer designs endpoints
### ❌ Anti-Pattern 3: "I Need to Understand Everything"
**Example**: React Developer loads backend architecture, database schema, deployment strategy
- **Problem**: Loading context outside their domain
- **Fix**: React Developer loads only: API contract, frontend architecture, component specs
### ❌ Anti-Pattern 4: "Let Me Re-Decide"
**Example**: Backend Developer re-evaluates framework choice already made by Architect
- **Problem**: Re-work, token waste on context already compressed
- **Fix**: Backend Developer receives checkpoint: "Framework: Fastify. Implement services."
## Token Optimization Through Clear Boundaries
### Before: Unclear Boundaries
- Solution Architect loads: everything (6,000 tokens)
- API Developer loads: everything (6,000 tokens)
- Both design API: duplicate work
- **Total**: 12,000 tokens, duplicate work
### After: Clear Boundaries
- Solution Architect: Loads stack/architecture guides (2,500 tokens), creates checkpoint (500 tokens)
- API Developer: Loads checkpoint + API patterns (1,200 tokens), designs detailed spec
- **Total**: 4,200 tokens, no duplication
- **Savings**: 65% token reduction
## Quick Reference: "Who Do I Call?"
| Need | Call Agent | They Will |
|------|-----------|-----------|
| Technology stack selection | Solution Architect | Choose frameworks, databases, tools |
| System architecture | Solution Architect | Design overall system, patterns, structure |
| API style decision | Solution Architect | Choose REST/GraphQL/tRPC |
| Detailed API specification | API Developer | Design all endpoints, schemas, docs |
| React component implementation | React Developer | Build components, hooks, state |
| Backend endpoint implementation | Node Backend Developer | Implement services, queries, business logic |
| Complex TypeScript types | TypeScript Expert | Create advanced type definitions |
| JS → TS migration | TypeScript Expert | Plan and execute migration |
| Requirements gathering | Analyst | Document requirements, user needs |
| Story breakdown | Scrum Master | Create implementable stories with DoD |
## Summary: Preventing Overlap
**Golden Rules**:
1. **One owner per decision** - No duplication
2. **Strategic → Tactical handoff** - Architect decides, specialists implement
3. **Checkpoints for handoff** - Don't repeat full context
4. **Load only your domain** - Don't load other agents' context
5. **Trust the handoff** - Don't re-decide upstream decisions
**Token Impact**:
- Clear boundaries → 50-70% reduction in duplicate context loading
- Checkpoints for handoff → 80% reduction in repeated context
- Domain-specific loading → Each agent loads only what they need
**Quality Impact**:
- ✅ DOES NOT reduce output quality
- ✅ DOES NOT limit agent responses
- ✅ Agents still produce comprehensive, high-quality outputs
- ✅ Prevents conflicting decisions from multiple agents
- ✅ Clearer ownership and accountability

View File

@ -0,0 +1,211 @@
# <!-- Powered by BMAD™ Core -->
# API Implementation Patterns
Reference guide for implementing REST, GraphQL, and tRPC APIs. Use this when implementing API designs.
## REST API Implementation
### Resource Naming
- Use nouns, not verbs (`/users` not `/getUsers`)
- Plural for collections (`/users` not `/user`)
- Hierarchical for relationships (`/users/123/posts`)
- kebab-case for multi-word resources (`/blog-posts`)
### HTTP Methods
- **GET**: Retrieve (safe, idempotent)
- **POST**: Create (not idempotent)
- **PUT**: Replace entire resource (idempotent)
- **PATCH**: Partial update (idempotent)
- **DELETE**: Remove (idempotent)
### Status Codes
- **2xx Success**: 200 OK, 201 Created, 204 No Content
- **4xx Client Errors**: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
- **5xx Server Errors**: 500 Internal Server Error, 503 Service Unavailable
### Versioning
- **URL path**: `/api/v1/users` (recommended - simple, explicit)
- **Header**: `Accept: application/vnd.api.v1+json` (cleaner URLs)
- **Query param**: `/api/users?version=1` (not recommended - breaks caching)
### Pagination
- **Offset-based**: `/users?page=1&limit=20` (simple, familiar)
- **Cursor-based**: `/users?cursor=abc123&limit=20` (consistent, handles real-time data)
- Always include: total count, has_next, has_prev
### Filtering & Sorting
- Query params: `/users?role=admin&status=active&sort=-createdAt`
- Use `-` prefix for descending sort
- Support multiple filters with AND logic
- Document available filters in API docs
### Error Responses
```json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid input data",
"details": [
{"field": "email", "message": "Invalid email format"}
]
}
}
```
## GraphQL Implementation
### Schema Design
- Define types and relationships clearly
- Use enums for fixed values
- Mark required fields as non-null
- Input types for mutations
- Cursor-based pagination (connections)
### Resolver Best Practices
- Implement DataLoader to avoid N+1 queries
- Field-level resolvers for computed properties
- Structured error handling
- Authentication at resolver level
- Use context for request-scoped data
### Performance
- Query depth limiting (prevent deep nesting abuse)
- Query complexity analysis (cost-based)
- Persisted queries for production
- Caching with Apollo or similar
- Batching with DataLoader
### Error Handling
```graphql
type Error {
message: String!
code: String!
path: [String!]
}
type UserResult {
user: User
errors: [Error!]
}
```
## tRPC Implementation
### Procedures
```typescript
import { z } from 'zod';
const userRouter = router({
getById: publicProcedure
.input(z.string())
.query(({ input }) => db.user.findUnique({ where: { id: input } })),
create: protectedProcedure
.input(z.object({
email: z.string().email(),
name: z.string().min(2)
}))
.mutation(({ input }) => db.user.create({ data: input })),
});
```
### Middleware
- Auth middleware for protected procedures
- Logging middleware for all procedures
- Error handling middleware
- Context builders for request-scoped data
### Router Organization
- Separate routers by domain (user, post, comment)
- Merge at app level
- Share middleware across routers
- Type-safe throughout
## WebSocket Patterns
### Event Structure
```typescript
// Server → Client
{
event: 'message',
data: { userId: '123', text: 'Hello' },
timestamp: 1234567890
}
// Client → Server
{
action: 'send_message',
payload: { text: 'Hello' }
}
```
### Connection Management
- Authenticate on connection
- Heartbeat/ping-pong for keepalive
- Reconnection logic with exponential backoff
- Room/channel management for broadcasts
### Error Handling
- Send error events to client
- Graceful degradation (fallback to polling)
- Connection state management
## Rate Limiting
### Implementation
- Token bucket algorithm (smooth traffic)
- Fixed window (simple, good enough)
- Sliding window (accurate, complex)
### Headers
```
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1234567890
Retry-After: 60
```
### Response
```json
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests",
"retryAfter": 60
}
}
```
## Caching
### HTTP Caching
```
Cache-Control: public, max-age=3600
ETag: "abc123"
Last-Modified: Wed, 21 Oct 2024 07:28:00 GMT
```
### Conditional Requests
- `If-None-Match: "abc123"` → 304 Not Modified
- `If-Modified-Since: ...` → 304 Not Modified
### Cache Invalidation
- Time-based (TTL)
- Event-based (on mutations)
- Tag-based (grouped invalidation)
## Documentation
### OpenAPI/Swagger
- Define all endpoints, parameters, responses
- Include examples for each
- Document authentication
- Use tags for grouping
- Validate spec before deploying
### GraphQL SDL
- Add descriptions to all types and fields
- Document deprecations with @deprecated
- Provide usage examples in comments
- Auto-generate docs from schema

View File

@ -0,0 +1,442 @@
# <!-- Powered by BMAD™ Core -->
# Context Loading Guide
Decision trees and strategies for Just-in-Time context retrieval. This guide helps agents load the minimal necessary context at the right time.
## Core Principle
**Load context when making decisions, not before.**
Every piece of context loaded costs tokens. Load only what you need, when you need it, for the specific decision you're making RIGHT NOW.
## Universal Loading Rules
### Always Load (Every Task Start)
- ✅ Agent role definition
- ✅ [core-principles.md](core-principles.md)
- ✅ Current task description and requirements
- ✅ Explicitly referenced artifacts (checkpoints, PRDs, specs)
### Never Load (Unless Specific Decision)
- ❌ Technology-specific implementation guides
- ❌ Best practices documentation
- ❌ Pattern libraries
- ❌ Other agents' domain-specific guides
### Ask Before Loading
Before loading ANY additional file, ask these 4 questions:
1. **Am I making THIS decision RIGHT NOW?** (Not later, not "might need")
2. **Is this MY role's responsibility?** (Not another agent's domain)
3. **Is this already in checkpoint/requirements?** (Don't duplicate)
4. **Can I use role knowledge instead?** (Load only for complex/unfamiliar decisions)
If answer to #1 or #2 is NO → **Don't load it**
## Decision Tree by Task Type
### Task: Greenfield Project Architecture
```
Start: Load requirements + core-principles.md
├─ Technology Stack Decision?
│ └─ YES → Load technology-stack-guide.md
│ └─ NO → Skip (already decided)
├─ Deployment Strategy Decision?
│ └─ YES → Load deployment-strategies.md
│ └─ NO → Skip (decide later)
├─ Security Requirements Present?
│ └─ YES (auth/PII/payments) → Load security-guidelines.md
│ └─ NO → Skip
├─ Architecture Pattern Decision?
│ └─ YES → Load architecture-patterns.md
│ └─ NO → Use standard monolith, skip
└─ Implementation Details?
└─ SKIP ALL (delegate to implementation agents)
```
**Token Budget**: ~2,000-4,000 tokens
- Base: ~500 tokens (role + requirements)
- Stack guide: ~1,000 tokens
- Deployment: ~500 tokens
- Security (if needed): ~1,000 tokens
### Task: Feature Development (Existing Project)
```
Start: Load checkpoint + feature requirements
├─ New Components Needed?
│ ├─ Simple component → Use role knowledge (skip guides)
│ └─ Complex reusable component → Load component-design-guidelines.md
├─ State Management Decision?
│ ├─ Already defined in architecture → Use existing pattern (skip guide)
│ └─ New state solution needed → Load state-management-guide.md
├─ New API Endpoints?
│ ├─ Standard CRUD → Use role knowledge (skip guides)
│ └─ Complex/new API type → Load api-implementation-patterns.md (specific section only)
├─ Authentication/Authorization Changes?
│ └─ YES → Load security-guidelines.md
│ └─ NO → Skip
└─ Performance Requirements?
└─ YES → Load performance-checklist.md
└─ NO → Skip
```
**Token Budget**: ~1,000-2,000 tokens
- Base: ~700 tokens (checkpoint + requirements)
- Add ~300-500 per guide loaded
- Target: Load max 1-2 guides per feature
### Task: API Design
```
Start: Load requirements + data models
├─ What API Type?
│ ├─ REST → Load REST section of api-implementation-patterns.md (~200 tokens)
│ ├─ GraphQL → Load GraphQL section of api-implementation-patterns.md (~300 tokens)
│ └─ tRPC → Load tRPC section of api-implementation-patterns.md (~200 tokens)
├─ Authentication Endpoints?
│ └─ YES → Load security-guidelines.md
│ └─ NO → Skip
└─ Existing API Standards?
├─ YES → Follow existing patterns (skip guide)
└─ NO → Load api-best-practices.md
```
**Token Budget**: ~1,000-1,500 tokens
- Base: ~500 tokens
- API pattern section: ~200-300 tokens
- Security (if auth): ~1,000 tokens
### Task: Code Review
```
Start: Load code being reviewed + task context
├─ Check Architecture Alignment?
│ └─ Load architecture-review-checklist.md
├─ Security-Critical Code (auth/validation)?
│ └─ Load security-guidelines.md
├─ Performance-Critical Code?
│ └─ Load performance-checklist.md
└─ General Code Quality?
└─ Load development-guidelines.md
```
**Token Budget**: ~800-1,500 tokens
- Code: ~500 tokens
- Checklist: ~300-500 tokens
- Add specific guides as needed
### Task: Database Schema Design
```
Start: Load requirements + data relationships
├─ Database Type Decision?
│ ├─ Choosing SQL vs NoSQL → Load database-design-patterns.md (comparison section)
│ └─ Already chosen → Skip, use existing
├─ Complex Relationships?
│ └─ Load database-design-patterns.md (schema design section)
└─ Simple CRUD Schema?
└─ Use role knowledge (skip guides)
```
**Token Budget**: ~800-1,200 tokens
### Task: TypeScript Migration
```
Start: Load existing JavaScript code + migration requirements
├─ Project Setup?
│ └─ Load development-guidelines.md (tsconfig section)
├─ Complex Type Scenarios?
│ └─ Load TypeScript advanced patterns
└─ Gradual Migration Strategy?
└─ Load migration guide
```
**Token Budget**: ~1,000-2,000 tokens
## Decision Trees by Agent Role
### React Developer
```
Task Received
├─ Component Implementation (Simple)
│ └─ Load: NOTHING (use role knowledge)
├─ Component Implementation (Complex/Reusable)
│ └─ Load: component-design-guidelines.md
├─ State Management Decision
│ └─ Load: state-management-guide.md
├─ Performance Optimization
│ └─ Load: performance-checklist.md
├─ Form Implementation
│ └─ Load: form validation patterns
└─ Testing Complex Component
└─ Load: testing-strategy.md
```
### Node Backend Developer
```
Task Received
├─ CRUD Endpoints (Standard)
│ └─ Load: NOTHING (use role knowledge)
├─ Authentication/Authorization
│ └─ Load: security-guidelines.md
├─ Framework Selection
│ └─ Load: backend-patterns.md (framework comparison)
├─ Complex Queries / Performance Issues
│ └─ Load: database-optimization.md
└─ Background Jobs
└─ Load: job queue patterns
```
### Solution Architect
```
Task Received
├─ Requirements Analysis
│ └─ Load: NOTHING except requirements
├─ Technology Stack Decision
│ └─ Load: technology-stack-guide.md
├─ Architecture Pattern Selection
│ └─ Load: architecture-patterns.md
├─ Deployment Strategy
│ └─ Load: deployment-strategies.md
├─ Security/Compliance Requirements
│ └─ Load: security-guidelines.md
└─ Implementation Details
└─ SKIP (delegate to implementation agents)
```
### API Developer
```
Task Received
├─ REST API Design
│ └─ Load: api-implementation-patterns.md (REST section ONLY)
├─ GraphQL API Design
│ └─ Load: api-implementation-patterns.md (GraphQL section ONLY)
├─ tRPC API Design
│ └─ Load: api-implementation-patterns.md (tRPC section ONLY)
├─ Auth Endpoints
│ └─ Load: security-guidelines.md
└─ Standard CRUD
└─ Load: NOTHING (use OpenAPI spec template)
```
### TypeScript Expert
```
Task Received
├─ Project Setup / tsconfig
│ └─ Load: development-guidelines.md (TS section)
├─ Standard Type Definitions
│ └─ Load: NOTHING (use role knowledge)
├─ Complex Generics / Advanced Types
│ └─ Load: TypeScript advanced patterns
└─ JS to TS Migration
└─ Load: migration guide
```
## Context Loading Patterns
### Pattern 1: Minimal Start
**When**: Every task
**Load**: Role + core-principles.md + task requirements only
**Skip**: Everything else until decision point
**Tokens**: ~500-700
### Pattern 2: Checkpoint-Based
**When**: Continuing multi-phase workflow
**Load**: Most recent checkpoint + current task
**Skip**: Full phase history, archived discussions
**Tokens**: ~800-1,200
### Pattern 3: Decision-Triggered
**When**: Making specific technology/pattern choice
**Load**: Single guide for that decision
**Skip**: All other guides
**Tokens**: +300-1,000 (per decision)
### Pattern 4: Section-Only Loading
**When**: Loading large reference file
**Load**: Only relevant section (e.g., "REST API" from api-implementation-patterns.md)
**Skip**: Other sections
**Tokens**: ~200-500 vs ~1,500-3,000 (full file)
### Pattern 5: Progressive Expansion
**When**: Complex task with multiple decision points
**Load**: Stage 1 (minimal) → Stage 2 (decision guides) → Stage 3 (implementation patterns)
**Skip**: Future stage context until needed
**Tokens**: Spread across stages, create checkpoints between
## Red Flags: When You're Over-Loading
🚩 **Red Flag Signals**:
- Loading >3 data files for single task
- Loading files "just in case"
- Loading before knowing what decision you're making
- Loading other agents' domain-specific guides
- Loading implementation details during architecture phase
- Loading optimization guides before having performance issue
## Token Budget Guidelines
### By Task Complexity
**Simple Task** (component, CRUD endpoint, type definition):
- Budget: <1,000 tokens total
- Load: Role + task only
**Medium Task** (feature, API design, review):
- Budget: 1,000-2,000 tokens
- Load: Role + task + 1-2 specific guides
**Complex Task** (architecture, migration, system design):
- Budget: 2,000-4,000 tokens
- Load: Role + task + multiple guides
- Strategy: Use checkpoints to compress
**Multi-Phase Workflow**:
- Budget: <10,000 tokens cumulative
- Strategy: Checkpoint after each phase (compress to ~1,000 tokens)
### Budget Triggers
**Create Checkpoint When**:
- Phase context exceeds 3,000 tokens
- Transitioning between workflow phases
- Completed major decision point
- 5+ agent interactions in sequence
**Archive Context When**:
- Discussion exceeds 1,000 tokens
- Implementation details complete
- Decision finalized (keep conclusion only)
## Validation Checklist
Before loading any file, verify:
- [ ] I am making a specific decision RIGHT NOW (not "might need later")
- [ ] This decision is my role's responsibility
- [ ] This information is NOT in checkpoint/requirements already
- [ ] I cannot use my role knowledge for this decision
- [ ] I am loading ONLY the relevant section, not entire file
- [ ] I have not already loaded >2 guides for this task
- [ ] This will help me complete THIS task, not future tasks
**If any checkbox is unchecked → Don't load it**
## Examples
### ✅ Good: JIT Loading
**Task**: Build user authentication system
**Sequence**:
1. Start: Load role + core-principles.md + requirements (~500 tokens)
2. Decision: Auth approach → Load security-guidelines.md (~1,000 tokens)
3. Decision: API design → Load api-implementation-patterns.md (REST section ~200 tokens)
4. Implementation: Use loaded context, skip additional guides
5. Total: ~1,700 tokens
### ❌ Bad: Upfront Loading
**Task**: Build user authentication system
**Sequence**:
1. Start: Load role + security-guidelines.md + api-implementation-patterns.md + database-optimization.md + deployment-strategies.md + best-practices.md (~6,000 tokens)
2. Use: Only security-guidelines.md and partial API patterns
3. Waste: ~4,000 tokens of unused context
**Problem**: Loaded everything upfront, used <40% of it
### ✅ Good: Section-Only Loading
**Task**: Design REST API for user service
**Sequence**:
1. Load: Role + task (~500 tokens)
2. Load: REST section from api-implementation-patterns.md (~200 tokens)
3. Skip: GraphQL, tRPC, WebSocket sections
4. Total: ~700 tokens vs ~1,500 if loaded full file
### ❌ Bad: Full File Loading
**Task**: Design REST API for user service
**Sequence**:
1. Load: Full api-implementation-patterns.md (~1,500 tokens)
2. Use: Only REST section (~200 tokens worth)
3. Waste: ~1,300 tokens of GraphQL/tRPC/WebSocket patterns
## Summary
**Golden Rules**:
1. Start minimal (role + task + requirements)
2. Load on decision points (not before)
3. Load sections, not full files
4. Ask 4 questions before loading
5. Create checkpoints when >3K tokens
6. Archive verbose context immediately
**Target**: <1,000 tokens for simple tasks, <2,000 for medium, <4,000 for complex
**Remember**: Context is expensive. Every token loaded must directly contribute to the current decision.

File diff suppressed because it is too large Load Diff

View File

@ -5,6 +5,19 @@
## Purpose ## Purpose
Define complete API contracts for a JavaScript/TypeScript backend to ensure frontend-backend alignment and enable parallel development. Define complete API contracts for a JavaScript/TypeScript backend to ensure frontend-backend alignment and enable parallel development.
## Context Budget
**Estimated Tokens**: ~1,500-3,000 tokens (complete API spec with 10-20 endpoints)
**Complexity**: Medium-High (requires consistent contract definition across all endpoints)
**Context Window Usage**: ~8-15% of typical limit
**Token Efficiency per Endpoint**: ~100-150 tokens (TypeScript interfaces + docs)
**Token Efficiency**:
- Generate OpenAPI spec (YAML) - more compact than repeated examples
- Share common types across endpoints (pagination, error responses)
- Reference auth patterns doc instead of repeating for each endpoint
- Use TypeScript interfaces as source of truth, avoid duplicating in prose
## When to Use ## When to Use
- Before starting backend implementation - Before starting backend implementation
- When adding new API endpoints - When adding new API endpoints

View File

@ -5,6 +5,19 @@
## Purpose ## Purpose
Document the technical architecture of a JavaScript/TypeScript full-stack application to guide implementation and ensure team alignment. Document the technical architecture of a JavaScript/TypeScript full-stack application to guide implementation and ensure team alignment.
## Context Budget
**Estimated Tokens**: ~2,000-4,000 tokens (complete architecture doc)
**Complexity**: High (requires comprehensive system design across frontend, backend, database, infrastructure)
**Context Window Usage**: ~10-20% of typical limit
**Input Context Required**: ~500-1,000 tokens (requirements, constraints, scale estimates)
**Token Efficiency**:
- Use architecture checklist to guide structure (avoid over-documentation)
- Reference external docs for standard patterns (e.g., link to Next.js docs instead of explaining)
- Focus on decisions and rationale, not technology tutorials
- Create separate ADR files for complex decisions, reference in main doc
## When to Use ## When to Use
- Starting a new greenfield project - Starting a new greenfield project
- Major system refactoring - Major system refactoring

View File

@ -5,11 +5,24 @@
## Purpose ## Purpose
Compact accumulated context from workflow phases into concise summaries that maintain essential information while reducing token usage for subsequent phases. Implements the "compaction strategy" from effective context engineering. Compact accumulated context from workflow phases into concise summaries that maintain essential information while reducing token usage for subsequent phases. Implements the "compaction strategy" from effective context engineering.
## Context Budget
**Estimated Tokens**: ~500-1,000 tokens (checkpoint output)
**Complexity**: Medium (requires analyzing phase outputs and extracting key decisions)
**Context Window Usage**: ~5-10% of typical 200K token limit
**Token Reduction**: Target 80%+ reduction from original phase context (e.g., 5,000 tokens → 1,000 tokens)
**Budget Triggers**:
- Create checkpoint when phase context exceeds 3,000-5,000 tokens
- Archive verbose discussions exceeding 1,000 tokens
- Compress multi-agent conversations with 5+ exchanges
## When to Use ## When to Use
- After major decision points (architecture chosen, tech stack selected) - After major decision points (architecture chosen, tech stack selected)
- Before transitioning between workflow phases - Before transitioning between workflow phases
- After 5+ sequential agent interactions - After 5+ sequential agent interactions
- When detailed discussions need to be archived with key decisions preserved - When detailed discussions need to be archived with key decisions preserved
- **Token-based trigger**: When phase context >3K tokens
## Prerequisites ## Prerequisites
- Completed phase with multiple artifacts or discussions - Completed phase with multiple artifacts or discussions

View File

@ -5,6 +5,19 @@
## Purpose ## Purpose
Create detailed, actionable development stories for JavaScript/TypeScript full-stack features that enable developers to implement without additional design decisions. Create detailed, actionable development stories for JavaScript/TypeScript full-stack features that enable developers to implement without additional design decisions.
## Context Budget
**Estimated Tokens**: ~800-1,500 tokens per story
**Complexity**: Medium-High (requires detailed technical specification and acceptance criteria)
**Context Window Usage**: ~5-8% per story
**Input Context Required**: ~1,000-2,000 tokens (architecture doc + requirements)
**Token Efficiency**:
- Reference architecture doc by path, don't repeat full stack details
- Point to shared type definitions instead of duplicating interfaces
- Use template structure to minimize boilerplate
- Each story should be self-contained but reference shared docs
## When to Use ## When to Use
- Breaking down epics into implementable stories - Breaking down epics into implementable stories
- Converting architecture documents into development tasks - Converting architecture documents into development tasks

View File

@ -17,11 +17,26 @@ workflow:
- agent: js-solution-architect - agent: js-solution-architect
reviews: technical_impact reviews: technical_impact
requires: feature-requirements.md requires: feature-requirements.md
context_budget: 1500-2500 tokens
loads_if_needed: loads_if_needed:
- security-guidelines.md (IF authentication/authorization changes) - security-guidelines.md
- best-practices.md (IF introducing new patterns) WHEN: Feature involves authentication, authorization, user data, or sensitive information
- architecture-patterns.md (IF architectural changes) WHY: Need security patterns for auth flows, data protection, and input validation
notes: Assess technical impact on existing architecture. Identify affected components, database changes, API modifications, and integration points. TOKENS: ~1000
- best-practices.md
WHEN: Feature introduces new architectural patterns not in existing codebase
WHY: Ensure new patterns align with team standards and best practices
TOKENS: ~800
SKIP_IF: Using existing patterns only
- architecture-patterns.md
WHEN: Feature requires significant architectural changes (new service, major refactor)
WHY: Need pattern guidance for structural changes
TOKENS: ~1200
SKIP_IF: Simple addition to existing architecture
notes: |
Assess technical impact on existing architecture. Identify affected components, database changes, API modifications, and integration points.
DEFAULT LOAD: core-principles.md + feature-requirements.md + existing architecture checkpoint (~800 tokens)
JIT LOAD: Only load guides when making specific decisions about security, patterns, or architecture changes.
- agent: js-solution-architect - agent: js-solution-architect
action: create_checkpoint action: create_checkpoint
@ -35,7 +50,32 @@ workflow:
requires: requires:
- feature-requirements.md - feature-requirements.md
- architecture-impact-checkpoint.md - architecture-impact-checkpoint.md
notes: "Create detailed technical spec with file changes, new components/endpoints, types, tests, and implementation steps. Reference checkpoint for architecture context. SAVE to docs/features/[feature-name]/" context_budget: 1000-1500 tokens
loads_if_needed:
- component-design-guidelines.md (react-developer)
WHEN: Building complex reusable component (compound components, render props, custom hooks)
WHY: Need advanced component patterns
TOKENS: ~600
SKIP_IF: Simple component using standard patterns
- state-management-guide.md (react-developer)
WHEN: Choosing state solution for new feature (useState vs Zustand vs Redux vs React Query)
WHY: Need state management decision framework
TOKENS: ~800
SKIP_IF: State pattern already defined in architecture
- security-guidelines.md (node-backend-developer)
WHEN: Implementing auth endpoints or handling sensitive data
WHY: Need auth patterns and security best practices
TOKENS: ~1000
SKIP_IF: Standard CRUD endpoints
- api-implementation-patterns.md (api-developer, node-backend-developer)
WHEN: Implementing specific API type (REST/GraphQL/tRPC) - load relevant section only
WHY: Need implementation details for chosen API style
TOKENS: ~200-300 per section
SKIP_IF: Following existing API patterns in codebase
notes: |
Create detailed technical spec with file changes, new components/endpoints, types, tests, and implementation steps.
DEFAULT LOAD: checkpoint + requirements (~1000 tokens)
JIT LOAD: Role-specific guides only when making new decisions. SAVE to docs/features/[feature-name]/
- agent: sm - agent: sm
creates: feature-stories.md creates: feature-stories.md

View File

@ -24,15 +24,38 @@ workflow:
- agent: js-solution-architect - agent: js-solution-architect
creates: technology-stack-decision.md creates: technology-stack-decision.md
requires: requirements-analysis.md requires: requirements-analysis.md
context_budget: 2000-3000 tokens
loads_if_needed: loads_if_needed:
- technology-stack-guide.md (ALWAYS - for stack comparison) - technology-stack-guide.md
- deployment-strategies.md (IF hosting decisions needed) WHEN: ALWAYS (making stack decisions)
- security-guidelines.md (IF handling sensitive data) WHY: Need framework comparisons, decision criteria, and stack recommendations
TOKENS: ~1500
NOTE: This is the core decision guide for greenfield projects
- deployment-strategies.md
WHEN: Requirements specify hosting/deployment needs OR choosing deployment approach
WHY: Need hosting platform comparison and deployment pattern guidance
TOKENS: ~500
SKIP_IF: Deployment decision deferred to later phase
- security-guidelines.md
WHEN: Requirements involve authentication, user data, PII, payments, or compliance
WHY: Need security architecture patterns for sensitive data handling
TOKENS: ~1000
SKIP_IF: No sensitive data or auth requirements
- architecture-patterns.md
WHEN: Complex requirements suggesting microservices, event-driven, or non-standard patterns
WHY: Need pattern comparison for architectural style selection
TOKENS: ~1200
SKIP_IF: Standard monolith or JAMstack pattern sufficient
optional_steps: optional_steps:
- technology_research - technology_research
- scalability_analysis - scalability_analysis
- cost_estimation - cost_estimation
notes: "Select appropriate technology stack based on requirements. Choose frontend framework, backend framework, database, hosting, and tools. SAVE OUTPUT: Copy to docs/architecture/ folder." notes: |
Select appropriate technology stack based on requirements. Choose frontend framework, backend framework, database, hosting, and tools.
DEFAULT LOAD: requirements-analysis.md + core-principles.md (~800 tokens)
REQUIRED LOAD: technology-stack-guide.md (core decision guide)
JIT LOAD: deployment-strategies.md, security-guidelines.md, architecture-patterns.md based on requirements
SAVE OUTPUT: Copy to docs/architecture/ folder.
- agent: js-solution-architect - agent: js-solution-architect
action: create_checkpoint action: create_checkpoint
@ -46,11 +69,38 @@ workflow:
requires: requires:
- requirements-analysis.md - requirements-analysis.md
- stack-selection-checkpoint.md - stack-selection-checkpoint.md
context_budget: 1500-2500 tokens
loads_if_needed:
- architecture-patterns.md
WHEN: Designing specific architecture pattern (microservices, event-driven, CQRS, etc.)
WHY: Need detailed pattern guidance for chosen architectural style
TOKENS: ~1200
SKIP_IF: Simple monolith or standard JAMstack - use role knowledge
- security-guidelines.md
WHEN: Designing auth system, RBAC, or security-critical features
WHY: Need security architecture patterns and best practices
TOKENS: ~1000
SKIP_IF: No auth or minimal security requirements (defer to implementation)
- database-design-patterns.md
WHEN: Complex data model with many relationships, or choosing SQL vs NoSQL
WHY: Need schema design patterns and database selection criteria
TOKENS: ~800
SKIP_IF: Simple CRUD schema - use role knowledge
- api-implementation-patterns.md
WHEN: Defining API contracts and need specific implementation guidance
WHY: Need API design patterns for REST/GraphQL/tRPC
TOKENS: ~300-500 per section
SKIP_IF: API design delegated to api-developer agent
optional_steps: optional_steps:
- architecture_patterns_review - architecture_patterns_review
- security_architecture - security_architecture
- performance_planning - performance_planning
notes: "Design complete system architecture including frontend, backend, database schema, API contracts, and deployment strategy. SAVE OUTPUT: Copy to docs/architecture/ folder." notes: |
Design complete system architecture including frontend, backend, database schema, API contracts, and deployment strategy.
DEFAULT LOAD: stack-selection-checkpoint.md + requirements (~1000 tokens)
JIT LOAD: Pattern/security/database guides only when designing those specific aspects
TARGET: Keep under 2500 tokens by loading sections, not full files
SAVE OUTPUT: Copy to docs/architecture/ folder.
- agent: js-solution-architect - agent: js-solution-architect
validates: architecture_completeness validates: architecture_completeness