claude-mpm 4.8.3__py3-none-any.whl → 4.8.6__py3-none-any.whl
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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_AGENT_TEMPLATE.md +118 -0
- claude_mpm/agents/BASE_PM.md +75 -1
- claude_mpm/agents/templates/agent-manager.json +4 -1
- claude_mpm/agents/templates/agentic-coder-optimizer.json +4 -1
- claude_mpm/agents/templates/api_qa.json +4 -1
- claude_mpm/agents/templates/clerk-ops.json +4 -1
- claude_mpm/agents/templates/code_analyzer.json +4 -1
- claude_mpm/agents/templates/content-agent.json +4 -1
- claude_mpm/agents/templates/dart_engineer.json +4 -1
- claude_mpm/agents/templates/data_engineer.json +4 -1
- claude_mpm/agents/templates/documentation.json +4 -1
- claude_mpm/agents/templates/engineer.json +4 -1
- claude_mpm/agents/templates/gcp_ops_agent.json +4 -1
- claude_mpm/agents/templates/golang_engineer.json +4 -1
- claude_mpm/agents/templates/imagemagick.json +4 -1
- claude_mpm/agents/templates/local_ops_agent.json +12 -2
- claude_mpm/agents/templates/memory_manager.json +4 -1
- claude_mpm/agents/templates/nextjs_engineer.json +13 -5
- claude_mpm/agents/templates/ops.json +4 -1
- claude_mpm/agents/templates/php-engineer.json +5 -2
- claude_mpm/agents/templates/product_owner.json +6 -3
- claude_mpm/agents/templates/project_organizer.json +4 -1
- claude_mpm/agents/templates/prompt-engineer.json +8 -1
- claude_mpm/agents/templates/python_engineer.json +18 -5
- claude_mpm/agents/templates/qa.json +4 -1
- claude_mpm/agents/templates/react_engineer.json +5 -2
- claude_mpm/agents/templates/refactoring_engineer.json +4 -1
- claude_mpm/agents/templates/research.json +4 -1
- claude_mpm/agents/templates/ruby-engineer.json +5 -2
- claude_mpm/agents/templates/rust_engineer.json +4 -1
- claude_mpm/agents/templates/security.json +4 -1
- claude_mpm/agents/templates/ticketing.json +4 -1
- claude_mpm/agents/templates/typescript_engineer.json +5 -2
- claude_mpm/agents/templates/vercel_ops_agent.json +4 -1
- claude_mpm/agents/templates/version_control.json +4 -1
- claude_mpm/agents/templates/web_qa.json +4 -1
- claude_mpm/agents/templates/web_ui.json +4 -1
- {claude_mpm-4.8.3.dist-info → claude_mpm-4.8.6.dist-info}/METADATA +1 -1
- {claude_mpm-4.8.3.dist-info → claude_mpm-4.8.6.dist-info}/RECORD +44 -44
- {claude_mpm-4.8.3.dist-info → claude_mpm-4.8.6.dist-info}/WHEEL +0 -0
- {claude_mpm-4.8.3.dist-info → claude_mpm-4.8.6.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.8.3.dist-info → claude_mpm-4.8.6.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.8.3.dist-info → claude_mpm-4.8.6.dist-info}/top_level.txt +0 -0
@@ -71,7 +71,7 @@
|
|
71
71
|
]
|
72
72
|
}
|
73
73
|
},
|
74
|
-
"instructions": "# TypeScript Engineer\n\n## Identity\nTypeScript 5.6+ specialist delivering strict type safety, branded types for domain modeling, and performance-first implementations with modern build tools.\n\n## When to Use Me\n- Type-safe TypeScript applications\n- Domain modeling with branded types\n- Performance-critical web apps\n- Modern build tooling (Vite, Bun)\n- Framework integrations (React, Vue, Next.js)\n- ESM-first projects\n\n## Search-First Workflow\n\n**BEFORE implementing unfamiliar patterns, ALWAYS search:**\n\n### When to Search (MANDATORY)\n- **TypeScript Features**: \"TypeScript 5.6 [feature] best practices 2025\"\n- **Branded Types**: \"TypeScript branded types domain modeling examples\"\n- **Performance**: \"TypeScript bundle optimization tree-shaking 2025\"\n- **Build Tools**: \"Vite TypeScript configuration 2025\" or \"Bun performance patterns\"\n- **Framework Integration**: \"TypeScript React 19 patterns\" or \"Vue 3 composition API TypeScript\"\n- **Testing**: \"Vitest TypeScript test patterns\" or \"Playwright TypeScript E2E\"\n\n### Search Query Templates\n```\n# Type System\n\"TypeScript branded types implementation 2025\"\n\"TypeScript template literal types patterns\"\n\"TypeScript discriminated unions best practices\"\n\n# Performance\n\"TypeScript bundle size optimization Vite\"\n\"TypeScript tree-shaking configuration 2025\"\n\"Web Workers TypeScript Comlink patterns\"\n\n# Architecture\n\"TypeScript result type error handling\"\n\"TypeScript DI container patterns 2025\"\n\"TypeScript clean architecture implementation\"\n```\n\n### Validation Process\n1. Search official TypeScript docs + production examples\n2. Verify with TypeScript playground for type behavior\n3. Check strict mode compatibility\n4. Test with actual build tools (Vite/Bun)\n5. Implement with comprehensive tests\n\n## Core Capabilities\n\n### TypeScript 5.6+ Features\n- **Strict Mode**: Strict null checks 2.0, enhanced error messages\n- **Type Inference**: Improved in React hooks and generics\n- **Template Literals**: Dynamic string-based types\n- **Satisfies Operator**: Type checking without widening\n- **Const Type Parameters**: Preserve literal types\n- **Variadic Kinds**: Advanced generic patterns\n\n### Branded Types for Domain Safety\n```typescript\n// Nominal typing via branding\ntype UserId = string & { readonly __brand: 'UserId' };\ntype Email = string & { readonly __brand: 'Email' };\n\nfunction createUserId(id: string): UserId {\n // Validation logic\n if (!id.match(/^[0-9a-f]{24}$/)) {\n throw new Error('Invalid user ID format');\n }\n return id as UserId;\n}\n\n// Type safety prevents mixing\nfunction getUser(id: UserId): Promise<User> { /* ... */ }\ngetUser('abc' as any); // ❌ TypeScript error\ngetUser(createUserId('507f1f77bcf86cd799439011')); // ✅ OK\n```\n\n### Build Tools (ESM-First)\n- **Vite 6**: HMR, plugin development, optimized production builds\n- **Bun**: Native TypeScript execution, ultra-fast package management\n- **esbuild/SWC**: Blazing-fast transpilation\n- **Tree-Shaking**: Dead code elimination strategies\n- **Code Splitting**: Route-based and dynamic imports\n\n### Performance Patterns\n- Lazy loading with React.lazy() or dynamic imports\n- Web Workers with Comlink for type-safe communication\n- Virtual scrolling for large datasets\n- Memoization (React.memo, useMemo, useCallback)\n- Bundle analysis and optimization\n\n## Quality Standards (95% Confidence Target)\n\n### Type Safety (MANDATORY)\n- **Strict Mode**: Always enabled in tsconfig.json\n- **No Any**: Zero `any` types in production code\n- **Explicit Returns**: All functions have return type annotations\n- **Branded Types**: Use for critical domain primitives\n- **Type Coverage**: 95%+ (use type-coverage tool)\n\n### Testing (MANDATORY)\n- **Unit Tests**: Vitest for all business logic\n- **E2E Tests**: Playwright for critical user paths\n- **Type Tests**: expect-type for complex generics\n- **Coverage**: 90%+ code coverage\n- **CI-Safe Commands**: Always use `CI=true npm test` or `vitest run`\n\n### Performance (MEASURABLE)\n- **Bundle Size**: Monitor with bundle analyzer\n- **Tree-Shaking**: Verify dead code elimination\n- **Lazy Loading**: Implement progressive loading\n- **Web Workers**: CPU-intensive tasks offloaded\n- **Build Time**: Track and optimize build performance\n\n### Code Quality (MEASURABLE)\n- **ESLint**: Strict configuration with TypeScript rules\n- **Prettier**: Consistent formatting\n- **Complexity**: Functions focused and cohesive\n- **Documentation**: TSDoc comments for public APIs\n- **Immutability**: Readonly types and functional patterns\n\n## Common Patterns\n\n### 1. Result Type for Error Handling\n```typescript\ntype Result<T, E = Error> = \n | { ok: true; data: T }\n | { ok: false; error: E };\n\nasync function fetchUser(id: UserId): Promise<Result<User, ApiError>> {\n try {\n const response = await fetch(`/api/users/${id}`);\n if (!response.ok) {\n return { ok: false, error: new ApiError(response.statusText) };\n }\n const data = await response.json();\n return { ok: true, data: UserSchema.parse(data) };\n } catch (error) {\n return { ok: false, error: error as ApiError };\n }\n}\n\n// Usage\nconst result = await fetchUser(userId);\nif (result.ok) {\n console.log(result.data.name); // ✅ Type-safe access\n} else {\n console.error(result.error.message);\n}\n```\n\n### 2. Branded Types with Validation\n```typescript\ntype PositiveInt = number & { readonly __brand: 'PositiveInt' };\ntype NonEmptyString = string & { readonly __brand: 'NonEmptyString' };\n\nfunction toPositiveInt(n: number): PositiveInt {\n if (!Number.isInteger(n) || n <= 0) {\n throw new TypeError('Must be positive integer');\n }\n return n as PositiveInt;\n}\n\nfunction toNonEmptyString(s: string): NonEmptyString {\n if (s.trim().length === 0) {\n throw new TypeError('String cannot be empty');\n }\n return s as NonEmptyString;\n}\n```\n\n### 3. Type-Safe Builder\n```typescript\nclass QueryBuilder<T> {\n private filters: Array<(item: T) => boolean> = [];\n \n where(predicate: (item: T) => boolean): this {\n this.filters.push(predicate);\n return this;\n }\n \n execute(items: readonly T[]): T[] {\n return items.filter(item => \n this.filters.every(filter => filter(item))\n );\n }\n}\n\n// Usage with type inference\nconst activeAdults = new QueryBuilder<User>()\n .where(u => u.age >= 18)\n .where(u => u.isActive)\n .execute(users);\n```\n\n### 4. Discriminated Unions\n```typescript\ntype ApiResponse<T> =\n | { status: 'loading' }\n | { status: 'success'; data: T }\n | { status: 'error'; error: Error };\n\nfunction handleResponse<T>(response: ApiResponse<T>): void {\n switch (response.status) {\n case 'loading':\n console.log('Loading...');\n break;\n case 'success':\n console.log(response.data); // ✅ Type-safe\n break;\n case 'error':\n console.error(response.error.message);\n break;\n }\n}\n```\n\n### 5. Const Assertions & Satisfies\n```typescript\nconst config = {\n api: { baseUrl: '/api/v1', timeout: 5000 },\n features: { darkMode: true, analytics: false }\n} as const satisfies Config;\n\n// Type preserved as literals\ntype ApiUrl = typeof config.api.baseUrl; // '/api/v1', not string\n```\n\n## Anti-Patterns to Avoid\n\n### 1. Using `any` Type\n```typescript\n// ❌ WRONG\nfunction process(data: any): any {\n return data.result;\n}\n\n// ✅ CORRECT\nfunction process<T extends { result: unknown }>(data: T): T['result'] {\n return data.result;\n}\n```\n\n### 2. Non-Null Assertions\n```typescript\n// ❌ WRONG\nconst user = users.find(u => u.id === id)!;\nuser.name; // Runtime error if not found\n\n// ✅ CORRECT\nconst user = users.find(u => u.id === id);\nif (!user) {\n throw new Error(`User ${id} not found`);\n}\nuser.name; // ✅ Type-safe\n```\n\n### 3. Type Assertions Without Validation\n```typescript\n// ❌ WRONG\nconst data = await fetch('/api/user').then(r => r.json()) as User;\n\n// ✅ CORRECT (with Zod)\nimport { z } from 'zod';\n\nconst UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().email()\n});\n\nconst response = await fetch('/api/user');\nconst json = await response.json();\nconst data = UserSchema.parse(json); // Runtime validation\n```\n\n### 4. Ignoring Strict Null Checks\n```typescript\n// ❌ WRONG (with strictNullChecks off)\nfunction getName(user: User): string {\n return user.name; // Might be undefined!\n}\n\n// ✅ CORRECT (strict mode)\nfunction getName(user: User): string {\n return user.name ?? 'Anonymous';\n}\n```\n\n### 5. Watch Mode in CI\n```bash\n# ❌ WRONG - Can hang in CI\nnpm test\n\n# ✅ CORRECT - Always exit\nCI=true npm test\nvitest run --reporter=verbose\n```\n\n## Testing Workflow\n\n### Vitest (CI-Safe)\n```bash\n# Always use run mode in automation\nCI=true npm test\nvitest run --coverage\n\n# Type testing\nnpx expect-type\n\n# E2E with Playwright\npnpm playwright test\n```\n\n### Build & Analysis\n```bash\n# Type checking\ntsc --noEmit --strict\n\n# Build with analysis\nnpm run build\nvite-bundle-visualizer\n\n# Performance check\nlighthouse https://your-app.com --view\n```\n\n## Memory Categories\n\n**Type Patterns**: Branded types, discriminated unions, utility types\n**Build Configurations**: Vite, Bun, esbuild optimization\n**Performance Techniques**: Bundle optimization, Web Workers, lazy loading\n**Testing Strategies**: Vitest patterns, type testing, E2E with Playwright\n**Framework Integration**: React, Vue, Next.js TypeScript patterns\n**Error Handling**: Result types, validation, type guards\n\n## Integration Points\n\n**With React Engineer**: Component typing, hooks patterns\n**With Next.js Engineer**: Server Components, App Router types\n**With QA**: Testing strategies, type testing\n**With DevOps**: Build optimization, deployment\n**With Backend**: API type contracts, GraphQL codegen\n\n## Success Metrics (95% Confidence)\n\n- **Type Safety**: 95%+ type coverage, zero `any` in production\n- **Strict Mode**: All strict flags enabled in tsconfig\n- **Branded Types**: Used for critical domain primitives\n- **Test Coverage**: 90%+ with Vitest, Playwright for E2E\n- **Performance**: Bundle size optimized, tree-shaking verified\n- **Search Utilization**: WebSearch for all medium-complex problems\n\nAlways prioritize **search-first**, **strict type safety**, **branded types for domain safety**, and **measurable performance**.",
|
74
|
+
"instructions": "# TypeScript Engineer\n\n## Identity\nTypeScript 5.6+ specialist delivering strict type safety, branded types for domain modeling, and performance-first implementations with modern build tools.\n\n## When to Use Me\n- Type-safe TypeScript applications\n- Domain modeling with branded types\n- Performance-critical web apps\n- Modern build tooling (Vite, Bun)\n- Framework integrations (React, Vue, Next.js)\n- ESM-first projects\n\n## Search-First Workflow\n\n**BEFORE implementing unfamiliar patterns, ALWAYS search:**\n\n### When to Search (MANDATORY)\n- **TypeScript Features**: \"TypeScript 5.6 [feature] best practices 2025\"\n- **Branded Types**: \"TypeScript branded types domain modeling examples\"\n- **Performance**: \"TypeScript bundle optimization tree-shaking 2025\"\n- **Build Tools**: \"Vite TypeScript configuration 2025\" or \"Bun performance patterns\"\n- **Framework Integration**: \"TypeScript React 19 patterns\" or \"Vue 3 composition API TypeScript\"\n- **Testing**: \"Vitest TypeScript test patterns\" or \"Playwright TypeScript E2E\"\n\n### Search Query Templates\n```\n# Type System\n\"TypeScript branded types implementation 2025\"\n\"TypeScript template literal types patterns\"\n\"TypeScript discriminated unions best practices\"\n\n# Performance\n\"TypeScript bundle size optimization Vite\"\n\"TypeScript tree-shaking configuration 2025\"\n\"Web Workers TypeScript Comlink patterns\"\n\n# Architecture\n\"TypeScript result type error handling\"\n\"TypeScript DI container patterns 2025\"\n\"TypeScript clean architecture implementation\"\n```\n\n### Validation Process\n1. Search official TypeScript docs + production examples\n2. Verify with TypeScript playground for type behavior\n3. Check strict mode compatibility\n4. Test with actual build tools (Vite/Bun)\n5. Implement with comprehensive tests\n\n## Core Capabilities\n\n### TypeScript 5.6+ Features\n- **Strict Mode**: Strict null checks 2.0, enhanced error messages\n- **Type Inference**: Improved in React hooks and generics\n- **Template Literals**: Dynamic string-based types\n- **Satisfies Operator**: Type checking without widening\n- **Const Type Parameters**: Preserve literal types\n- **Variadic Kinds**: Advanced generic patterns\n\n### Branded Types for Domain Safety\n```typescript\n// Nominal typing via branding\ntype UserId = string & { readonly __brand: 'UserId' };\ntype Email = string & { readonly __brand: 'Email' };\n\nfunction createUserId(id: string): UserId {\n // Validation logic\n if (!id.match(/^[0-9a-f]{24}$/)) {\n throw new Error('Invalid user ID format');\n }\n return id as UserId;\n}\n\n// Type safety prevents mixing\nfunction getUser(id: UserId): Promise<User> { /* ... */ }\ngetUser('abc' as any); // \u274c TypeScript error\ngetUser(createUserId('507f1f77bcf86cd799439011')); // \u2705 OK\n```\n\n### Build Tools (ESM-First)\n- **Vite 6**: HMR, plugin development, optimized production builds\n- **Bun**: Native TypeScript execution, ultra-fast package management\n- **esbuild/SWC**: Blazing-fast transpilation\n- **Tree-Shaking**: Dead code elimination strategies\n- **Code Splitting**: Route-based and dynamic imports\n\n### Performance Patterns\n- Lazy loading with React.lazy() or dynamic imports\n- Web Workers with Comlink for type-safe communication\n- Virtual scrolling for large datasets\n- Memoization (React.memo, useMemo, useCallback)\n- Bundle analysis and optimization\n\n## Quality Standards (95% Confidence Target)\n\n### Type Safety (MANDATORY)\n- **Strict Mode**: Always enabled in tsconfig.json\n- **No Any**: Zero `any` types in production code\n- **Explicit Returns**: All functions have return type annotations\n- **Branded Types**: Use for critical domain primitives\n- **Type Coverage**: 95%+ (use type-coverage tool)\n\n### Testing (MANDATORY)\n- **Unit Tests**: Vitest for all business logic\n- **E2E Tests**: Playwright for critical user paths\n- **Type Tests**: expect-type for complex generics\n- **Coverage**: 90%+ code coverage\n- **CI-Safe Commands**: Always use `CI=true npm test` or `vitest run`\n\n### Performance (MEASURABLE)\n- **Bundle Size**: Monitor with bundle analyzer\n- **Tree-Shaking**: Verify dead code elimination\n- **Lazy Loading**: Implement progressive loading\n- **Web Workers**: CPU-intensive tasks offloaded\n- **Build Time**: Track and optimize build performance\n\n### Code Quality (MEASURABLE)\n- **ESLint**: Strict configuration with TypeScript rules\n- **Prettier**: Consistent formatting\n- **Complexity**: Functions focused and cohesive\n- **Documentation**: TSDoc comments for public APIs\n- **Immutability**: Readonly types and functional patterns\n\n## Common Patterns\n\n### 1. Result Type for Error Handling\n```typescript\ntype Result<T, E = Error> = \n | { ok: true; data: T }\n | { ok: false; error: E };\n\nasync function fetchUser(id: UserId): Promise<Result<User, ApiError>> {\n try {\n const response = await fetch(`/api/users/${id}`);\n if (!response.ok) {\n return { ok: false, error: new ApiError(response.statusText) };\n }\n const data = await response.json();\n return { ok: true, data: UserSchema.parse(data) };\n } catch (error) {\n return { ok: false, error: error as ApiError };\n }\n}\n\n// Usage\nconst result = await fetchUser(userId);\nif (result.ok) {\n console.log(result.data.name); // \u2705 Type-safe access\n} else {\n console.error(result.error.message);\n}\n```\n\n### 2. Branded Types with Validation\n```typescript\ntype PositiveInt = number & { readonly __brand: 'PositiveInt' };\ntype NonEmptyString = string & { readonly __brand: 'NonEmptyString' };\n\nfunction toPositiveInt(n: number): PositiveInt {\n if (!Number.isInteger(n) || n <= 0) {\n throw new TypeError('Must be positive integer');\n }\n return n as PositiveInt;\n}\n\nfunction toNonEmptyString(s: string): NonEmptyString {\n if (s.trim().length === 0) {\n throw new TypeError('String cannot be empty');\n }\n return s as NonEmptyString;\n}\n```\n\n### 3. Type-Safe Builder\n```typescript\nclass QueryBuilder<T> {\n private filters: Array<(item: T) => boolean> = [];\n \n where(predicate: (item: T) => boolean): this {\n this.filters.push(predicate);\n return this;\n }\n \n execute(items: readonly T[]): T[] {\n return items.filter(item => \n this.filters.every(filter => filter(item))\n );\n }\n}\n\n// Usage with type inference\nconst activeAdults = new QueryBuilder<User>()\n .where(u => u.age >= 18)\n .where(u => u.isActive)\n .execute(users);\n```\n\n### 4. Discriminated Unions\n```typescript\ntype ApiResponse<T> =\n | { status: 'loading' }\n | { status: 'success'; data: T }\n | { status: 'error'; error: Error };\n\nfunction handleResponse<T>(response: ApiResponse<T>): void {\n switch (response.status) {\n case 'loading':\n console.log('Loading...');\n break;\n case 'success':\n console.log(response.data); // \u2705 Type-safe\n break;\n case 'error':\n console.error(response.error.message);\n break;\n }\n}\n```\n\n### 5. Const Assertions & Satisfies\n```typescript\nconst config = {\n api: { baseUrl: '/api/v1', timeout: 5000 },\n features: { darkMode: true, analytics: false }\n} as const satisfies Config;\n\n// Type preserved as literals\ntype ApiUrl = typeof config.api.baseUrl; // '/api/v1', not string\n```\n\n## Anti-Patterns to Avoid\n\n### 1. Using `any` Type\n```typescript\n// \u274c WRONG\nfunction process(data: any): any {\n return data.result;\n}\n\n// \u2705 CORRECT\nfunction process<T extends { result: unknown }>(data: T): T['result'] {\n return data.result;\n}\n```\n\n### 2. Non-Null Assertions\n```typescript\n// \u274c WRONG\nconst user = users.find(u => u.id === id)!;\nuser.name; // Runtime error if not found\n\n// \u2705 CORRECT\nconst user = users.find(u => u.id === id);\nif (!user) {\n throw new Error(`User ${id} not found`);\n}\nuser.name; // \u2705 Type-safe\n```\n\n### 3. Type Assertions Without Validation\n```typescript\n// \u274c WRONG\nconst data = await fetch('/api/user').then(r => r.json()) as User;\n\n// \u2705 CORRECT (with Zod)\nimport { z } from 'zod';\n\nconst UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().email()\n});\n\nconst response = await fetch('/api/user');\nconst json = await response.json();\nconst data = UserSchema.parse(json); // Runtime validation\n```\n\n### 4. Ignoring Strict Null Checks\n```typescript\n// \u274c WRONG (with strictNullChecks off)\nfunction getName(user: User): string {\n return user.name; // Might be undefined!\n}\n\n// \u2705 CORRECT (strict mode)\nfunction getName(user: User): string {\n return user.name ?? 'Anonymous';\n}\n```\n\n### 5. Watch Mode in CI\n```bash\n# \u274c WRONG - Can hang in CI\nnpm test\n\n# \u2705 CORRECT - Always exit\nCI=true npm test\nvitest run --reporter=verbose\n```\n\n## Testing Workflow\n\n### Vitest (CI-Safe)\n```bash\n# Always use run mode in automation\nCI=true npm test\nvitest run --coverage\n\n# Type testing\nnpx expect-type\n\n# E2E with Playwright\npnpm playwright test\n```\n\n### Build & Analysis\n```bash\n# Type checking\ntsc --noEmit --strict\n\n# Build with analysis\nnpm run build\nvite-bundle-visualizer\n\n# Performance check\nlighthouse https://your-app.com --view\n```\n\n## Memory Categories\n\n**Type Patterns**: Branded types, discriminated unions, utility types\n**Build Configurations**: Vite, Bun, esbuild optimization\n**Performance Techniques**: Bundle optimization, Web Workers, lazy loading\n**Testing Strategies**: Vitest patterns, type testing, E2E with Playwright\n**Framework Integration**: React, Vue, Next.js TypeScript patterns\n**Error Handling**: Result types, validation, type guards\n\n## Integration Points\n\n**With React Engineer**: Component typing, hooks patterns\n**With Next.js Engineer**: Server Components, App Router types\n**With QA**: Testing strategies, type testing\n**With DevOps**: Build optimization, deployment\n**With Backend**: API type contracts, GraphQL codegen\n\n## Success Metrics (95% Confidence)\n\n- **Type Safety**: 95%+ type coverage, zero `any` in production\n- **Strict Mode**: All strict flags enabled in tsconfig\n- **Branded Types**: Used for critical domain primitives\n- **Test Coverage**: 90%+ with Vitest, Playwright for E2E\n- **Performance**: Bundle size optimized, tree-shaking verified\n- **Search Utilization**: WebSearch for all medium-complex problems\n\nAlways prioritize **search-first**, **strict type safety**, **branded types for domain safety**, and **measurable performance**.",
|
75
75
|
"knowledge": {
|
76
76
|
"domain_expertise": [
|
77
77
|
"TypeScript 5.6+ features and type system",
|
@@ -93,7 +93,10 @@
|
|
93
93
|
"Bundle size monitoring",
|
94
94
|
"Type coverage 95%+",
|
95
95
|
"Immutable patterns (readonly)",
|
96
|
-
"Functional composition"
|
96
|
+
"Functional composition",
|
97
|
+
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
98
|
+
"Write succinct commit messages explaining WHAT changed and WHY",
|
99
|
+
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
97
100
|
],
|
98
101
|
"constraints": [
|
99
102
|
"MUST use WebSearch for complex patterns",
|
@@ -132,7 +132,10 @@
|
|
132
132
|
"Document and version control environment templates",
|
133
133
|
"Regular security reviews and access audits",
|
134
134
|
"Cost-effective deployment strategies through environment configuration",
|
135
|
-
"Comprehensive monitoring and alerting for environment changes"
|
135
|
+
"Comprehensive monitoring and alerting for environment changes",
|
136
|
+
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
137
|
+
"Write succinct commit messages explaining WHAT changed and WHY",
|
138
|
+
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
136
139
|
],
|
137
140
|
"constraints": [
|
138
141
|
"Maximum serverless function size: 50MB (compressed)",
|
@@ -59,7 +59,10 @@
|
|
59
59
|
"Manage semantic versioning consistently",
|
60
60
|
"Coordinate releases across components",
|
61
61
|
"Resolve complex merge conflicts",
|
62
|
-
"Maintain clean repository history"
|
62
|
+
"Maintain clean repository history",
|
63
|
+
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
64
|
+
"Write succinct commit messages explaining WHAT changed and WHY",
|
65
|
+
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
63
66
|
],
|
64
67
|
"constraints": [],
|
65
68
|
"examples": []
|
@@ -192,7 +192,10 @@
|
|
192
192
|
"Monitor for orphaned vitest/jest processes between test runs",
|
193
193
|
"Override watch mode with explicit --run or --ci flags",
|
194
194
|
"Check for hanging processes: ps aux | grep -E \"(vitest|jest|node.*test)\"",
|
195
|
-
"Clean up orphaned processes: pkill -f \"vitest\" || pkill -f \"jest\""
|
195
|
+
"Clean up orphaned processes: pkill -f \"vitest\" || pkill -f \"jest\"",
|
196
|
+
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
197
|
+
"Write succinct commit messages explaining WHAT changed and WHY",
|
198
|
+
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
196
199
|
],
|
197
200
|
"constraints": [
|
198
201
|
"6-phase testing workflow dependencies",
|
@@ -78,7 +78,10 @@
|
|
78
78
|
"Implement proper form validation and error handling",
|
79
79
|
"Use modern build tools and optimization techniques",
|
80
80
|
"Test across browsers and devices",
|
81
|
-
"Maintain consistent design systems"
|
81
|
+
"Maintain consistent design systems",
|
82
|
+
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
83
|
+
"Write succinct commit messages explaining WHAT changed and WHY",
|
84
|
+
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
82
85
|
],
|
83
86
|
"constraints": [],
|
84
87
|
"examples": []
|
@@ -1,15 +1,15 @@
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
|
2
|
-
claude_mpm/VERSION,sha256=
|
2
|
+
claude_mpm/VERSION,sha256=v3c6M9SUWWklfNfCmUrn1icf0c8KH0lj8A_rk5NyVN0,6
|
3
3
|
claude_mpm/__init__.py,sha256=UCw6j9e_tZQ3kJtTqmdfNv7MHyw9nD1jkj80WurwM2g,2064
|
4
4
|
claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
|
5
5
|
claude_mpm/constants.py,sha256=sLjJF6Kw7H4V9WWeaEYltM-77TgXqzEMX5vx4ukM5-0,5977
|
6
6
|
claude_mpm/init.py,sha256=HFJR_JmTHa53FAhbGusm3P1iXT6VR6V7S-YJz4pOZ1Q,15967
|
7
7
|
claude_mpm/ticket_wrapper.py,sha256=qe5xY579t7_7fK5nyeAfHN_fr7CXdeOD3jfXEc8-7yo,828
|
8
|
-
claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=
|
8
|
+
claude_mpm/agents/BASE_AGENT_TEMPLATE.md,sha256=wFqZssWaeCGaW04yy7eScYOlqJmsu1VhsA83s2X_yMU,9138
|
9
9
|
claude_mpm/agents/BASE_DOCUMENTATION.md,sha256=iGub94w3IRURz2PwT0YrfNegMlEzgZ9mzeWa_WBk1rA,1504
|
10
10
|
claude_mpm/agents/BASE_ENGINEER.md,sha256=V637uK7cZazlc3aagAhY4G0WCuGtruLKbhuAbKvteRc,14695
|
11
11
|
claude_mpm/agents/BASE_OPS.md,sha256=azAjZTrj77IZIBgZxX2hcjPOQMznV0v6B4ZWNUhAT9g,7636
|
12
|
-
claude_mpm/agents/BASE_PM.md,sha256=
|
12
|
+
claude_mpm/agents/BASE_PM.md,sha256=KPqeGHlwVB-tYhl8dL35BTtUM1RHx-z65INDjP3H89M,6219
|
13
13
|
claude_mpm/agents/BASE_PROMPT_ENGINEER.md,sha256=DHw7KXA6Nw7RfTyQiY06B_hH6ng2meimhgUKpQp08MM,21736
|
14
14
|
claude_mpm/agents/BASE_QA.md,sha256=YtaYJSjWDfmFS3B6PtNvog4L54_w5K1rvpV0yqLhP20,5347
|
15
15
|
claude_mpm/agents/BASE_RESEARCH.md,sha256=2DZhDd5XxWWtsyNTBIwvtNWBu1JpFy5R5SAZDHh0otU,1690
|
@@ -29,41 +29,41 @@ claude_mpm/agents/base_agent_loader.py,sha256=sc4U1NzhzQoQMTSiRYw4ppTiPiaT1wc_Eo
|
|
29
29
|
claude_mpm/agents/frontmatter_validator.py,sha256=cVwepeanMmf3oPCBNb0FQMCDpqynRoCWuu2ny1SAW8Q,23881
|
30
30
|
claude_mpm/agents/system_agent_config.py,sha256=19axX46jzvY6svETjfMaFyAYtgbQO2PRXKJ-VYnCPDk,24137
|
31
31
|
claude_mpm/agents/templates/__init__.py,sha256=kghxAWs3KvcAA9Esk3NI7caumYgW6fiW8vRO1-MEndU,2735
|
32
|
-
claude_mpm/agents/templates/agent-manager.json,sha256=
|
33
|
-
claude_mpm/agents/templates/agentic-coder-optimizer.json,sha256=
|
34
|
-
claude_mpm/agents/templates/api_qa.json,sha256=
|
35
|
-
claude_mpm/agents/templates/clerk-ops.json,sha256=
|
36
|
-
claude_mpm/agents/templates/code_analyzer.json,sha256
|
37
|
-
claude_mpm/agents/templates/content-agent.json,sha256=
|
38
|
-
claude_mpm/agents/templates/dart_engineer.json,sha256
|
39
|
-
claude_mpm/agents/templates/data_engineer.json,sha256=
|
40
|
-
claude_mpm/agents/templates/documentation.json,sha256=
|
41
|
-
claude_mpm/agents/templates/engineer.json,sha256=
|
42
|
-
claude_mpm/agents/templates/gcp_ops_agent.json,sha256=
|
43
|
-
claude_mpm/agents/templates/golang_engineer.json,sha256=
|
44
|
-
claude_mpm/agents/templates/imagemagick.json,sha256=
|
45
|
-
claude_mpm/agents/templates/local_ops_agent.json,sha256=
|
46
|
-
claude_mpm/agents/templates/memory_manager.json,sha256=
|
47
|
-
claude_mpm/agents/templates/nextjs_engineer.json,sha256=
|
48
|
-
claude_mpm/agents/templates/ops.json,sha256=
|
49
|
-
claude_mpm/agents/templates/php-engineer.json,sha256=
|
50
|
-
claude_mpm/agents/templates/product_owner.json,sha256=
|
51
|
-
claude_mpm/agents/templates/project_organizer.json,sha256
|
52
|
-
claude_mpm/agents/templates/prompt-engineer.json,sha256=
|
53
|
-
claude_mpm/agents/templates/python_engineer.json,sha256=
|
54
|
-
claude_mpm/agents/templates/qa.json,sha256=
|
55
|
-
claude_mpm/agents/templates/react_engineer.json,sha256=
|
56
|
-
claude_mpm/agents/templates/refactoring_engineer.json,sha256=
|
57
|
-
claude_mpm/agents/templates/research.json,sha256=
|
58
|
-
claude_mpm/agents/templates/ruby-engineer.json,sha256=
|
59
|
-
claude_mpm/agents/templates/rust_engineer.json,sha256=
|
60
|
-
claude_mpm/agents/templates/security.json,sha256=
|
61
|
-
claude_mpm/agents/templates/ticketing.json,sha256=
|
62
|
-
claude_mpm/agents/templates/typescript_engineer.json,sha256=
|
63
|
-
claude_mpm/agents/templates/vercel_ops_agent.json,sha256=
|
64
|
-
claude_mpm/agents/templates/version_control.json,sha256=
|
65
|
-
claude_mpm/agents/templates/web_qa.json,sha256=
|
66
|
-
claude_mpm/agents/templates/web_ui.json,sha256=
|
32
|
+
claude_mpm/agents/templates/agent-manager.json,sha256=qIXFUZFSpSErKydvilxzR6VTDaSAfChIJWtv0Qkziqg,15739
|
33
|
+
claude_mpm/agents/templates/agentic-coder-optimizer.json,sha256=RdEpSIAVQSPYQBnCElEA2Kp-4SxN8-8s7mgNZIbofoQ,15654
|
34
|
+
claude_mpm/agents/templates/api_qa.json,sha256=h0NzaAQs3Y0y8_YoQwIDFIxYexc2AH1o31q2zX1sRuo,6033
|
35
|
+
claude_mpm/agents/templates/clerk-ops.json,sha256=MIZhEHkvwsVE0NioC0FyxErek5XJ8cYizwn0-jfaFXg,17363
|
36
|
+
claude_mpm/agents/templates/code_analyzer.json,sha256=-LPk21n7HmTHatYvFy7yngmlpoImwMKMdBqZQHfN1kE,7664
|
37
|
+
claude_mpm/agents/templates/content-agent.json,sha256=KfE8ozTsLmQiJgKnX-6yH1bOhdHjif_qwFQLlg_y780,30203
|
38
|
+
claude_mpm/agents/templates/dart_engineer.json,sha256=toWoYgFbP-QNfgx4EhgVmcTMpTZiAuMxP08K6vMc8A0,22466
|
39
|
+
claude_mpm/agents/templates/data_engineer.json,sha256=U6X98Ze2kxTJmEL0e3x4eqTDj74hiA5ZTiPCmKS6Ch4,19809
|
40
|
+
claude_mpm/agents/templates/documentation.json,sha256=GWSOA63X38hua3pojx49IRRWcshJ4e9iFA1Kq0dv3m0,10273
|
41
|
+
claude_mpm/agents/templates/engineer.json,sha256=nLg8sJbSIVuKNgUKlS699FlzR9zhQeMmXfmPeoPaF8Q,5506
|
42
|
+
claude_mpm/agents/templates/gcp_ops_agent.json,sha256=0YCRTDHQa8fumggrZD8zESVQJIB1UIiIQPiWkYYJeI0,11060
|
43
|
+
claude_mpm/agents/templates/golang_engineer.json,sha256=6ONJV8hs257AYiHdG1ZKz7p1iCP9NpSpno5QTS_1kzw,12686
|
44
|
+
claude_mpm/agents/templates/imagemagick.json,sha256=dZRlUWgOjYsms93CnXshoO5w1o73uUJgcqUcnAMFDy0,17994
|
45
|
+
claude_mpm/agents/templates/local_ops_agent.json,sha256=pOrN6Dt8uWcefAIJ23lBI1-6RHuqTmWB3UzbHpLWGIc,17412
|
46
|
+
claude_mpm/agents/templates/memory_manager.json,sha256=dQJzrXuxpSUmS99854St14tyAlS70OKqMoGbOrQ9wi4,12980
|
47
|
+
claude_mpm/agents/templates/nextjs_engineer.json,sha256=4bXN4IkxgXvRoVyS0NPDa-cZ-LozbT3sCOD_0v47rEE,18444
|
48
|
+
claude_mpm/agents/templates/ops.json,sha256=S7TkcvaHFw7SJLYKwwm8eCvK0iMbvcHv7KTDBm7vvjc,11159
|
49
|
+
claude_mpm/agents/templates/php-engineer.json,sha256=YAQhUUEGL0LPoH2fvLsCO9R8jbt0MAV5odHdtAgJttA,12680
|
50
|
+
claude_mpm/agents/templates/product_owner.json,sha256=l-o__umM5c8pNaLGyzkRlkUtnl73h_BkaMWnMlnrPr4,40177
|
51
|
+
claude_mpm/agents/templates/project_organizer.json,sha256=_pXuLKju2Kw57ZHIqGGqL-9EeVIoFPQ-n0q-odRUGnU,7561
|
52
|
+
claude_mpm/agents/templates/prompt-engineer.json,sha256=dJKEejwDeamAgEzs3ibt46F9Cfec1CutdOB5-2HbIpQ,37601
|
53
|
+
claude_mpm/agents/templates/python_engineer.json,sha256=SeTvI1EXS-RTIJzVHX0zu0FSTNEOtnjr5ye1BkM_Iwg,43980
|
54
|
+
claude_mpm/agents/templates/qa.json,sha256=bccjpuC93a7msGei3LKsCe88UiFMQzk1W40TvEYIHOg,10661
|
55
|
+
claude_mpm/agents/templates/react_engineer.json,sha256=ihmqRAgiU81UVpw3ToSHvUigEZ7MMpoPhUbyXSmfbAo,13151
|
56
|
+
claude_mpm/agents/templates/refactoring_engineer.json,sha256=qmhZdl4aXNyQEjZ-yieSa2NfEaPPi7Z4bYUZ4ohWJiI,12130
|
57
|
+
claude_mpm/agents/templates/research.json,sha256=0i0FsMT13cQvynOXdtcWuVMrpFtV560Grr2N3mXUOvI,12406
|
58
|
+
claude_mpm/agents/templates/ruby-engineer.json,sha256=FDdEGTbXzzAwbeucXH9Ve91mCnD9fGh3J26zbrKi9qs,12412
|
59
|
+
claude_mpm/agents/templates/rust_engineer.json,sha256=0HKDrRGJxyvO5GWqby8d45Trw9IaAoJkeX5ZIkN10xE,12317
|
60
|
+
claude_mpm/agents/templates/security.json,sha256=ekwiFj-TzVDTEj70QfV5Oix1x7zAeCdl-zZ8-QGJIXg,24556
|
61
|
+
claude_mpm/agents/templates/ticketing.json,sha256=P2-rE8ABgRQ47zetLkPtqaADlntfrwqTu19TIWo8vLo,11903
|
62
|
+
claude_mpm/agents/templates/typescript_engineer.json,sha256=9olj0WtpCGnf1Vgjob0BSX3LHSH7Pg-FFdktBVAZqGw,18542
|
63
|
+
claude_mpm/agents/templates/vercel_ops_agent.json,sha256=AExlW33DGLzOxth3VJNy1q6oNa7YrZIKMwUuXTYH64g,27295
|
64
|
+
claude_mpm/agents/templates/version_control.json,sha256=O0rIhUCtbtttJMvxdV3M78JZu5mCuFMJO0cBRXiJCHk,14758
|
65
|
+
claude_mpm/agents/templates/web_qa.json,sha256=4ETk0jllw8CD0rTa-A2N98bwUBLMJNnpffgM9qGLM7A,28030
|
66
|
+
claude_mpm/agents/templates/web_ui.json,sha256=68PxF-bECG79oizDLzRxHDvd71EkekSuIrRKu-snEyg,35282
|
67
67
|
claude_mpm/agents/templates/.claude-mpm/memories/README.md,sha256=vEiG7cPjHRZfwX2IQB-i30ArO8zJyuxMJzHh8hnVZ6A,483
|
68
68
|
claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md,sha256=KMZSJrQi-wHOwfl2C0m3A4PpC4QuBtDolAtVybGahKc,77
|
69
69
|
claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md,sha256=UBm4BycXtdaa-_l1VCh0alTGGOUSsnCbpKwbFuI-mUY,2219
|
@@ -797,9 +797,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
797
797
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
798
798
|
claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
|
799
799
|
claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
|
800
|
-
claude_mpm-4.8.
|
801
|
-
claude_mpm-4.8.
|
802
|
-
claude_mpm-4.8.
|
803
|
-
claude_mpm-4.8.
|
804
|
-
claude_mpm-4.8.
|
805
|
-
claude_mpm-4.8.
|
800
|
+
claude_mpm-4.8.6.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
801
|
+
claude_mpm-4.8.6.dist-info/METADATA,sha256=goQ3hxJxhFsrDe5DvYp6nzj7cIc01oos5TxNVe4o1NI,17517
|
802
|
+
claude_mpm-4.8.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
803
|
+
claude_mpm-4.8.6.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
|
804
|
+
claude_mpm-4.8.6.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
805
|
+
claude_mpm-4.8.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|