# Prompt Template Registry — Integration Points This document outlines the manual integration steps required to complete feature #184. These files must be merged manually to avoid type conflicts and maintain consistency with existing code patterns. ## 1. `shared/src/types/index.ts` **Action:** Export the new prompt registry types Add these lines to the exports: ```typescript // Prompt Registry Types export type { PromptTemplate, PromptVersion, PromptUsage, PromptStats, PromptCategory, CreatePromptTemplateInput, UpdatePromptTemplateInput, RenderPreviewRequest, RenderPreviewResponse, } from './prompt-registry.types.js'; ``` **Location:** Add to the end of the file, after other type exports. ## 2. `server/src/routes/v1/index.ts` **Action:** Register the prompt registry routes Add these lines in the route registration section (typically where other routes are imported and used): ```typescript // Import import promptRegistryRouter from '../prompt-registry.js'; // Register route (add with other route registrations) app.use('/api/prompt-registry', promptRegistryRouter); ``` **Location:** Find where other routes like `templates`, `tasks`, `chat` are registered. Add the prompt registry route in the same pattern. **Expected pattern:** ```typescript app.use('/api/templates', templateRouter); app.use('/api/prompt-registry', promptRegistryRouter); // <-- Add this line app.use('/api/tasks', taskRouter); ``` ## 3. `web/src/App.tsx` **Action:** Add route to prompt registry component Add route registration in the React Router configuration: ```typescript // Import import PromptRegistry from './components/prompts/PromptRegistry.js'; // In route definition (typically in a element) } /> ``` **Location:** Find where other routes are defined (e.g., `/templates`, `/tasks`, etc.) and add the prompts route alongside them. ## 4. `web/src/contexts/ViewContext.tsx` **Action:** Add prompt registry to navigation context (optional but recommended) If the app uses a navigation context to track available views, add: ```typescript // In the view type definition export type ViewType = '...' | 'prompts'; // In default views or navigation menu { id: 'prompts', label: 'Prompt Templates', icon: 'prompt-icon', // Use appropriate icon path: '/prompts' } ``` **Location:** Find where view definitions are configured. ## 5. `web/src/components/layout/Header.tsx` **Action:** Add navigation link to prompt registry (optional) Add a link to the prompt registry in the navigation bar: ```tsx Prompts ``` **Location:** In the navigation menu section of the header. ## 6. `web/src/components/layout/CommandPalette.tsx` **Action:** Add command palette entry (optional but useful) Add a command for quick navigation to prompts: ```typescript { id: 'prompt-registry', label: 'Open Prompt Registry', description: 'Manage and view prompt templates', icon: 'prompt', action: () => navigate('/prompts'), keywords: ['prompt', 'template', 'registry', 'ai'], } ``` **Location:** In the command definitions array. ## Implementation Order 1. **First:** Update `shared/src/types/index.ts` (enables TypeScript compilation of dependent files) 2. **Second:** Update `server/src/routes/v1/index.ts` (enables server API) 3. **Third:** Update `web/src/App.tsx` (enables web routing) 4. **Fourth:** Update navigation contexts/components (optional but recommended) 5. **Fifth:** Run builds and tests ## Verification Checklist After manual integration: - [ ] `pnpm --filter @veritas-kanban/shared build` passes without errors - [ ] Server starts without route registration errors - [ ] `/api/prompt-registry` endpoints respond (test: `GET /api/prompt-registry`) - [ ] Web app navigates to `/prompts` without 404 - [ ] PromptRegistry component renders without console errors - [ ] React Query hooks initialize correctly - [ ] Type inference works in IDE (no red squiggles on API calls) ## Files Created (Do Not Modify) These files are complete and require no further changes: 1. ✅ `shared/src/types/prompt-registry.types.ts` — Core types 2. ✅ `server/src/services/prompt-registry-service.ts` — Service layer 3. ✅ `server/src/routes/prompt-registry.ts` — REST routes 4. ✅ `web/src/lib/api/prompt-registry.ts` — API client 5. ✅ `web/src/hooks/usePromptRegistry.ts` — React Query hooks 6. ✅ `web/src/components/prompts/PromptRegistry.tsx` — Main UI component 7. ✅ `web/src/components/prompts/PromptRegistry.module.css` — Component styles ## Notes - All files follow existing code patterns (zod validation, YAML frontmatter storage, React Query hooks) - No external dependencies added beyond what's already in use - Storage uses file-based approach (consistent with template-service) - Endpoints follow REST conventions - Component uses React hooks and follows established patterns ## Questions? Refer to reference implementations: - **Template pattern:** `server/src/services/template-service.ts` - **Route pattern:** `server/src/routes/templates.ts` - **API client pattern:** `web/src/lib/api/entities.ts` - **React hooks pattern:** `web/src/hooks/` directory