log-implementation
Record implementation details for completed tasks to create a searchable knowledge base that prevents code duplication and helps future AI agents discover existing artifacts.
Instructions
Record comprehensive implementation details for a completed task.
⚠️ CRITICAL: Artifacts are REQUIRED. This creates a searchable knowledge base that future AI agents use to discover existing code and avoid duplication.
WHY DETAILED LOGGING MATTERS
Future AI agents (and future you) will use grep/ripgrep to search implementation logs before implementing new tasks. Complete logs prevent:
❌ Creating duplicate API endpoints
❌ Reimplementing existing components
❌ Duplicating utility functions and business logic
❌ Breaking established integration patterns
Incomplete logs = Duplicated code = Technical debt
REQUIRED FIELDS
artifacts (REQUIRED - Object)
Contains structured data about what was implemented. Must include relevant artifact types:
apiEndpoints (array of API endpoint objects)
When new API endpoints are created/modified, document:
method: HTTP method (GET, POST, PUT, DELETE, PATCH)
path: Route path (e.g., "/api/specs/:name/logs")
purpose: What this endpoint does
requestFormat: Request body/query params format (JSON schema or example)
responseFormat: Response structure (JSON schema or example)
location: File path and line number (e.g., "src/server.ts:245")
Example:
{
"method": "GET",
"path": "/api/specs/:name/implementation-log",
"purpose": "Retrieve implementation logs with optional filtering",
"requestFormat": "Query params: taskId (string, optional), search (string, optional)",
"responseFormat": "{ entries: ImplementationLogEntry[] }",
"location": "src/dashboard/server.ts:245"
}components (array of component objects)
When reusable UI components are created, document:
name: Component name
type: Framework type (React, Vue, Svelte, etc.)
purpose: What the component does
location: File path
props: Props interface or type signature
exports: What it exports (array of export names)
Example:
{
"name": "LogsPage",
"type": "React",
"purpose": "Main dashboard page for viewing implementation logs with search and filtering",
"location": "src/modules/pages/LogsPage.tsx",
"props": "{ specs: any[], selectedSpec: string, onSelect: (value: string) => void }",
"exports": ["LogsPage (default)"]
}functions (array of function objects)
When utility functions are created, document:
name: Function name
purpose: What it does
location: File path and line
signature: Function signature (params and return type)
isExported: Whether it can be imported
Example:
{
"name": "searchLogs",
"purpose": "Search implementation logs by keyword",
"location": "src/dashboard/implementation-log-manager.ts:156",
"signature": "(searchTerm: string) => Promise<ImplementationLogEntry[]>",
"isExported": true
}classes (array of class objects)
When classes are created, document:
name: Class name
purpose: What the class does
location: File path
methods: List of public methods
isExported: Whether it can be imported
Example:
{
"name": "ImplementationLogManager",
"purpose": "Manages CRUD operations for implementation logs",
"location": "src/dashboard/implementation-log-manager.ts",
"methods": ["loadLog", "addLogEntry", "getAllLogs", "searchLogs", "getTaskStats"],
"isExported": true
}integrations (array of integration objects)
Document how frontend connects to backend:
description: How components connect to APIs
frontendComponent: Which component initiates the connection
backendEndpoint: Which API endpoint is called
dataFlow: Describe the data flow (e.g., "User clicks → API call → State update → Re-render")
Example:
{
"description": "LogsPage fetches logs via REST API and subscribes to WebSocket for real-time updates",
"frontendComponent": "LogsPage",
"backendEndpoint": "GET /api/specs/:name/implementation-log",
"dataFlow": "Component mount → API fetch → Display logs → WebSocket subscription → Real-time updates on new entries"
}GOOD EXAMPLE (Include ALL relevant artifacts)
Task: "Implemented logs dashboard with real-time updates"
{
"taskId": "2.3",
"summary": "Implemented real-time implementation logs dashboard with filtering, search, and WebSocket updates",
"artifacts": {
"apiEndpoints": [
{
"method": "GET",
"path": "/api/specs/:name/implementation-log",
"purpose": "Retrieve implementation logs with optional filtering",
"requestFormat": "Query params: taskId (string, optional), search (string, optional)",
"responseFormat": "{ entries: ImplementationLogEntry[] }",
"location": "src/dashboard/server.ts:245"
}
],
"components": [
{
"name": "LogsPage",
"type": "React",
"purpose": "Main dashboard page for viewing implementation logs with search and filtering",
"location": "src/modules/pages/LogsPage.tsx",
"props": "None (uses React Router params)",
"exports": ["LogsPage (default)"]
}
],
"classes": [
{
"name": "ImplementationLogManager",
"purpose": "Manages CRUD operations for implementation logs",
"location": "src/dashboard/implementation-log-manager.ts",
"methods": ["loadLog", "addLogEntry", "getAllLogs", "searchLogs", "getTaskStats"],
"isExported": true
}
],
"integrations": [
{
"description": "LogsPage fetches logs via REST API and subscribes to WebSocket for real-time updates",
"frontendComponent": "LogsPage",
"backendEndpoint": "GET /api/specs/:name/implementation-log",
"dataFlow": "Component mount → API fetch → Display logs → WebSocket subscription → Real-time updates on new entries"
}
]
},
"filesModified": ["src/dashboard/server.ts"],
"filesCreated": ["src/modules/pages/LogsPage.tsx"],
"statistics": { "linesAdded": 650, "linesRemoved": 15, "filesChanged": 2 }
}BAD EXAMPLE (Don't do this)
❌ Empty artifacts - Future agents learn nothing:
{
"taskId": "2.3",
"summary": "Added endpoint and page",
"artifacts": {},
"filesModified": ["server.ts"],
"filesCreated": ["LogsPage.tsx"]
}❌ Vague summary with no structured data:
{
"taskId": "2.3",
"summary": "Implemented features",
"artifacts": {},
"filesModified": ["server.ts", "app.tsx"]
}Instructions
After completing a task, review what you implemented
Identify all artifacts (APIs, components, functions, classes, integrations)
Document each with full details and locations
Include ALL the information - be thorough!
Future agents depend on this data quality
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | No | Absolute path to the project root (optional - uses server context path if not provided) | |
| specName | Yes | Name of the specification | |
| taskId | Yes | Task ID (e.g., "1", "1.2", "3.1.4") | |
| summary | Yes | Brief summary of what was implemented | |
| filesModified | Yes | List of files that were modified | |
| filesCreated | Yes | List of files that were created | |
| statistics | Yes | Code statistics for the implementation | |
| artifacts | Yes | REQUIRED: Structured data about implemented artifacts (APIs, components, functions, classes, integrations). See tool description for detailed format. |