# Context7 Integration for Atomic Code Implementer

## Overview

The atomic-code-implementer agent uses Context7 MCP server to dynamically fetch up-to-date documentation for libraries and frameworks. This integration provides real-time access to the latest API documentation, best practices, and code examples.

## Integration Points

### 1. Preset-Driven Documentation Lookup

Each preset configuration includes a `context7Libraries` array that specifies which libraries to fetch documentation for:

```json
{
  "context7Libraries": [
    "@nestjs/common",
    "@nestjs/core",
    "@nestjs/typeorm",
    "typeorm",
    "class-validator"
  ]
}
```

When a preset is loaded, the agent automatically resolves and fetches documentation for all specified libraries.

### 2. Error-Driven Documentation Lookup

When build errors, type errors, or runtime issues occur, the agent can automatically lookup documentation for:

- Error resolution patterns
- API migration guides
- Breaking change documentation
- Best practice guidelines

### 3. Implementation-Driven Lookup

During atomic task implementation, the agent can fetch:

- Framework-specific implementation patterns
- Library-specific configuration examples
- Performance optimization techniques
- Security best practices

## Context7 Usage Patterns

### Library Resolution

```javascript
// Resolve library ID from preset configuration
const libraryId = await mcp__context7__resolve_library_id({
  libraryName: '@nestjs/common',
});
```

### Documentation Retrieval

```javascript
// Get comprehensive documentation
const docs = await mcp__context7__get_library_docs({
  context7CompatibleLibraryID: '/nestjs/nest',
  topic: 'controllers',
  tokens: 8000,
});
```

### Error-Specific Lookups

```javascript
// Look up specific error patterns
const errorDocs = await mcp__context7__get_library_docs({
  context7CompatibleLibraryID: '/typescript/typescript',
  topic: 'type errors',
  tokens: 5000,
});
```

## Automatic Lookup Triggers

### 1. Preset Loading Phase

When an atomic task is started:

1. Detect tech stack from file extensions
2. Load appropriate preset configuration
3. Extract `context7Libraries` array
4. Resolve all library IDs
5. Fetch relevant documentation based on task context

### 2. Error Detection Phase

When quality hooks detect issues:

1. Parse error messages for library/framework references
2. Resolve documentation for problematic libraries
3. Look up error-specific resolution patterns
4. Apply common fixes based on documentation

### 3. Implementation Phase

During code implementation:

1. Detect new library imports or API usage
2. Automatically fetch documentation for unknown patterns
3. Provide implementation examples and best practices
4. Validate against latest API specifications

## Context7 Library Mappings

### NestJS Backend

```json
{
  "@nestjs/common": "/nestjs/nest",
  "@nestjs/typeorm": "/nestjs/typeorm",
  "typeorm": "/typeorm/typeorm",
  "class-validator": "/typestack/class-validator",
  "bcrypt": "/kelektiv/node.bcrypt.js"
}
```

### React Frontend

```json
{
  "react": "/facebook/react",
  "react-dom": "/facebook/react",
  "@tanstack/react-query": "/tanstack/query",
  "tailwindcss": "/tailwindlabs/tailwindcss",
  "@testing-library/react": "/testing-library/react-testing-library"
}
```

### Python FastAPI

```json
{
  "fastapi": "/tiangolo/fastapi",
  "sqlalchemy": "/sqlalchemy/sqlalchemy",
  "pydantic": "/samuelcolvin/pydantic",
  "pytest": "/pytest-dev/pytest"
}
```

## Integration Workflow

### Sequential Thinking Enhanced Lookup

```markdown
1. **Preset Analysis Phase**
   - Use sequential thinking to determine optimal documentation needs
   - Analyze task requirements for specific library features
   - Prioritize documentation lookup based on complexity

2. **Dynamic Documentation Loading**
   - Load core framework documentation first
   - Fetch specialized library docs based on task specifics
   - Cache documentation for session reuse

3. **Implementation Guidance**
   - Use retrieved docs to guide implementation decisions
   - Apply documented best practices and patterns
   - Validate implementation against official examples
```

### Error Resolution Workflow

```markdown
1. **Error Detection**
   - Parse error messages for library/API references
   - Identify deprecated or changed APIs
   - Extract relevant context from error stack traces

2. **Documentation Lookup**
   - Resolve library documentation for error context
   - Fetch migration guides for breaking changes
   - Look up troubleshooting and FAQ sections

3. **Automated Remediation**
   - Apply documented fixes and workarounds
   - Update code to use current APIs
   - Add proper error handling based on docs
```

## Configuration Examples

### Preset Configuration with Context7

```json
{
  "name": "NestJS HIPAA Healthcare",
  "techStack": {
    "framework": "NestJS",
    "database": "TypeORM + PostgreSQL"
  },
  "context7Libraries": ["@nestjs/common", "@nestjs/typeorm", "typeorm", "bcrypt", "helmet"],
  "context7Topics": {
    "security": ["authentication", "authorization", "encryption"],
    "database": ["migrations", "relationships", "transactions"],
    "testing": ["unit tests", "integration tests", "mocking"]
  },
  "context7AutoLookup": {
    "onError": true,
    "onImport": true,
    "onDeprecation": true
  }
}
```

### Agent Integration Points

````markdown
## Context7 Integration in atomic-code-implementer.md

### Phase 1: Preset Loading

```javascript
// Load preset and resolve documentation
const preset = loadPreset(detectedTechStack, domainContext);
const libraryDocs = await loadContext7Documentation(preset.context7Libraries);
```
````

### Phase 2: Implementation Guidance

```javascript
// Get implementation examples during coding
const implementationDocs = await mcp__context7__get_library_docs({
  context7CompatibleLibraryID: '/nestjs/nest',
  topic: 'controllers authentication',
  tokens: 6000,
});
```

### Phase 3: Error Resolution

```javascript
// Look up error-specific documentation
if (buildError.includes('TypeError: Cannot read property')) {
  const errorDocs = await mcp__context7__get_library_docs({
    context7CompatibleLibraryID: extractLibraryFromError(buildError),
    topic: 'common errors troubleshooting',
    tokens: 4000,
  });
}
```

````

## Best Practices

### 1. Documentation Caching
- Cache resolved library IDs for session duration
- Store frequently accessed documentation locally
- Implement intelligent cache invalidation

### 2. Context-Aware Lookups
- Tailor documentation queries to specific atomic task context
- Use targeted topics rather than generic documentation
- Prioritize relevant sections based on implementation needs

### 3. Error-Driven Learning
- Maintain error pattern → documentation mapping
- Learn from successful error resolutions
- Build knowledge base of common issues and solutions

### 4. Performance Optimization
- Batch documentation requests when possible
- Use appropriate token limits for different use cases
- Implement request deduplication

## Troubleshooting

### Common Issues

1. **Library Not Found**
   ```javascript
   // Fallback to generic search
   const fallbackId = await mcp__context7__resolve_library_id({
     libraryName: `${libraryName} documentation`
   });
````

2. **Documentation Too Generic**

   ```javascript
   // Use more specific topics
   const specificDocs = await mcp__context7__get_library_docs({
     context7CompatibleLibraryID: libraryId,
     topic: `${specificFeature} implementation examples`,
     tokens: 8000,
   });
   ```

3. **Rate Limiting**
   ```javascript
   // Implement exponential backoff
   const docs = await retryWithBackoff(() => mcp__context7__get_library_docs(params));
   ```

This integration ensures the atomic code implementer always has access to the most current and relevant documentation, enabling it to produce high-quality, up-to-date implementations while following current best practices.
