294 lines
8.1 KiB
Markdown
294 lines
8.1 KiB
Markdown
# 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. |