Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"id": "code-documentation-migrator",
"title": "Code Documentation Migrator",
"description": "Extract inline code documentation and comments from GitHub repositories and transform them into structured documentation site content with proper formatting and organization",
"category": "technical",
"job": "software-engineering",
"example_prompt": "I need to migrate our project documentation from inline code comments to a proper documentation site. Here's what I need:\n\n1. Analyze the GitHub repository: https://github.com/myorg/myproject\n2. Extract all documentation from:\n - README files\n - Inline code comments (JSDoc, docstrings, etc.)\n - Function and class documentation\n - Architecture comments\n3. Organize the documentation into logical sections:\n - Getting Started\n - API Reference\n - Architecture Overview\n - Development Guide\n4. Generate markdown files for each section with proper formatting\n5. Create a table of contents and navigation structure\n6. Include code examples from the repository where relevant\n\nRepository language: JavaScript/TypeScript\nCurrent documentation state: Scattered across code comments and multiple README files\nTarget format: Markdown files for Docusaurus",
"example_result": "I've successfully analyzed your repository and migrated the documentation. Here's what was created:\n\n## Documentation Structure Created\n\n```\ndocs/\n├── index.md (Home)\n├── getting-started/\n│ ├── installation.md\n│ ├── quick-start.md\n│ └── configuration.md\n├── api-reference/\n│ ├── core-functions.md\n│ ├── utilities.md\n│ ├── types.md\n│ └── hooks.md\n├── architecture/\n│ ├── overview.md\n│ ├── data-flow.md\n│ └── components.md\n├── development/\n│ ├── contributing.md\n│ ├── testing.md\n│ └── deployment.md\n└── examples/\n ├── basic-usage.md\n └── advanced-patterns.md\n```\n\n## Sample Generated Content\n\n### 1. Getting Started - Installation (docs/getting-started/installation.md)\n\n```markdown\n# Installation\n\n## Prerequisites\n\n- Node.js 18+ \n- npm or yarn\n- Git\n\n## Quick Install\n\n```bash\nnpm install myproject\n# or\nyarn add myproject\n```\n\n## Verify Installation\n\n```javascript\nimport { initialize } from 'myproject';\n\nconst app = initialize();\nconsole.log(app.version); // Should output version number\n```\n\n## Environment Setup\n\nCreate a `.env` file in your project root:\n\n```env\nAPI_KEY=your_api_key_here\nENVIRONMENT=development\n```\n\n## Next Steps\n\n- [Quick Start Guide](./quick-start.md)\n- [Configuration Options](./configuration.md)\n- [API Reference](../api-reference/core-functions.md)\n```\n\n### 2. API Reference - Core Functions (docs/api-reference/core-functions.md)\n\n```markdown\n# Core Functions\n\n## initialize()\n\nInitializes the application with default or custom configuration.\n\n**Signature:**\n```typescript\nfunction initialize(config?: Config): Application\n```\n\n**Parameters:**\n- `config` (optional): Configuration object\n - `apiKey`: string - Your API key\n - `environment`: 'development' | 'production'\n - `debug`: boolean - Enable debug logging\n\n**Returns:** `Application` instance\n\n**Example:**\n```javascript\nimport { initialize } from 'myproject';\n\nconst app = initialize({\n apiKey: process.env.API_KEY,\n environment: 'production',\n debug: false\n});\n```\n\n**Throws:**\n- `ConfigError` - When required configuration is missing\n- `InitializationError` - When initialization fails\n\n---\n\n## connect()\n\nEstablishes a connection to the remote service.\n\n**Signature:**\n```typescript\nasync function connect(options?: ConnectionOptions): Promise<Connection>\n```\n\n**Parameters:**\n- `options` (optional): Connection options\n - `timeout`: number - Connection timeout in ms (default: 5000)\n - `retry`: boolean - Enable auto-retry (default: true)\n - `maxRetries`: number - Maximum retry attempts (default: 3)\n\n**Returns:** Promise resolving to `Connection` object\n\n**Example:**\n```javascript\nimport { connect } from 'myproject';\n\ntry {\n const connection = await connect({\n timeout: 10000,\n retry: true\n });\n console.log('Connected:', connection.id);\n} catch (error) {\n console.error('Connection failed:', error);\n}\n```\n\n---\n\n## process()\n\nProcesses input data and returns transformed output.\n\n**Signature:**\n```typescript\nfunction process(data: InputData): OutputData\n```\n\n**Parameters:**\n- `data`: Input data object\n - `source`: string - Source identifier\n - `payload`: any - Data payload\n - `metadata`: object - Optional metadata\n\n**Returns:** Processed `OutputData` object\n\n**Example:**\n```javascript\nimport { process } from 'myproject';\n\nconst result = process({\n source: 'api',\n payload: { items: [1, 2, 3] },\n metadata: { timestamp: Date.now() }\n});\n\nconsole.log(result.status); // 'success'\nconsole.log(result.data); // Processed items\n```\n```\n\n### 3. Architecture Overview (docs/architecture/overview.md)\n\n```markdown\n# Architecture Overview\n\n## System Design\n\nMyProject follows a modular, event-driven architecture designed for scalability and maintainability.\n\n```\n┌─────────────────────────────────────────┐\n│ Application Layer │\n│ ┌──────────┐ ┌──────────┐ ┌────────┐│\n│ │ API │ │ CLI │ │ SDK ││\n│ └──────────┘ └──────────┘ └────────┘│\n└─────────────────────────────────────────┘\n ↓\n┌─────────────────────────────────────────┐\n│ Core Business Logic │\n│ ┌──────────┐ ┌──────────┐ ┌────────┐│\n│ │ Processor│ │ Validator│ │ Handler││\n│ └──────────┘ └──────────┘ └────────┘│\n└─────────────────────────────────────────┘\n ↓\n┌─────────────────────────────────────────┐\n│ Data Layer │\n│ ┌──────────┐ ┌──────────┐ ┌────────┐│\n│ │ Cache │ │ Database │ │ Storage││\n│ └──────────┘ └──────────┘ └────────┘│\n└─────────────────────────────────────────┘\n```\n\n## Key Components\n\n### Application Layer\nHandles external interactions through multiple interfaces:\n- **API**: RESTful endpoints for programmatic access\n- **CLI**: Command-line interface for developers\n- **SDK**: Language-specific client libraries\n\n### Core Business Logic\nImplements the main application functionality:\n- **Processor**: Handles data transformation and processing\n- **Validator**: Ensures data integrity and business rules\n- **Handler**: Manages event processing and routing\n\n### Data Layer\nManages persistent and transient data:\n- **Cache**: Redis-based caching for performance\n- **Database**: PostgreSQL for relational data\n- **Storage**: S3-compatible object storage\n\n## Data Flow\n\n1. **Request Reception**: API/CLI receives user request\n2. **Validation**: Input data validated against schema\n3. **Processing**: Core logic processes the request\n4. **Data Access**: Required data fetched from data layer\n5. **Response**: Formatted response returned to client\n\n## Technology Stack\n\n- **Runtime**: Node.js 18+\n- **Language**: TypeScript 5.0+\n- **Framework**: Express.js\n- **Database**: PostgreSQL 15\n- **Cache**: Redis 7\n- **Testing**: Jest + Supertest\n- **CI/CD**: GitHub Actions\n\n## Design Patterns\n\n### Dependency Injection\nUsed throughout for loose coupling and testability.\n\n### Repository Pattern\nAbstracts data access logic from business logic.\n\n### Event-Driven\nComponents communicate via events for scalability.\n\n### Strategy Pattern\nPluggable processors for different data types.\n```\n\n### 4. Development Guide - Testing (docs/development/testing.md)\n\n```markdown\n# Testing Guide\n\n## Running Tests\n\n```bash\n# Run all tests\nnpm test\n\n# Run with coverage\nnpm run test:coverage\n\n# Run specific test file\nnpm test -- processor.test.js\n\n# Watch mode\nnpm test -- --watch\n```\n\n## Test Structure\n\n```javascript\n// Example: processor.test.js\nimport { process } from '../src/processor';\n\ndescribe('Processor', () => {\n describe('process()', () => {\n it('should process valid input successfully', () => {\n const input = {\n source: 'test',\n payload: { value: 123 }\n };\n \n const result = process(input);\n \n expect(result.status).toBe('success');\n expect(result.data).toBeDefined();\n });\n \n it('should handle invalid input gracefully', () => {\n const input = { invalid: true };\n \n expect(() => process(input)).toThrow('Invalid input');\n });\n });\n});\n```\n\n## Testing Best Practices\n\n1. **Unit Tests**: Test individual functions in isolation\n2. **Integration Tests**: Test component interactions\n3. **E2E Tests**: Test complete user workflows\n4. **Coverage Target**: Maintain >80% code coverage\n5. **Mocking**: Use Jest mocks for external dependencies\n\n## Continuous Integration\n\nTests run automatically on:\n- Every pull request\n- Commits to main branch\n- Before deployment\n\n```yaml\n# .github/workflows/test.yml (excerpt)\nname: Tests\non: [push, pull_request]\njobs:\n test:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - uses: actions/setup-node@v3\n - run: npm install\n - run: npm test\n - run: npm run test:coverage\n```\n```\n\n### 5. Navigation Structure (sidebar.js)\n\n```javascript\nmodule.exports = {\n docs: [\n {\n type: 'category',\n label: 'Getting Started',\n items: [\n 'getting-started/installation',\n 'getting-started/quick-start',\n 'getting-started/configuration'\n ]\n },\n {\n type: 'category',\n label: 'API Reference',\n items: [\n 'api-reference/core-functions',\n 'api-reference/utilities',\n 'api-reference/types',\n 'api-reference/hooks'\n ]\n },\n {\n type: 'category',\n label: 'Architecture',\n items: [\n 'architecture/overview',\n 'architecture/data-flow',\n 'architecture/components'\n ]\n },\n {\n type: 'category',\n label: 'Development',\n items: [\n 'development/contributing',\n 'development/testing',\n 'development/deployment'\n ]\n },\n {\n type: 'category',\n label: 'Examples',\n items: [\n 'examples/basic-usage',\n 'examples/advanced-patterns'\n ]\n }\n ]\n};\n```\n\n## Migration Summary\n\n**Extracted Documentation From:**\n- 45 source files analyzed\n- 230+ inline comments processed\n- 12 README files consolidated\n- 67 function/class documentation blocks extracted\n- 23 architecture comments organized\n\n**Generated Documentation:**\n- 15 markdown files created\n- 4 main sections organized\n- Table of contents structured\n- Navigation sidebar configured\n- 34 code examples included\n- Cross-references added\n\n**Documentation Quality:**\n✅ All public APIs documented\n✅ Installation steps validated\n✅ Code examples tested\n✅ Links verified\n✅ Formatting consistent\n✅ Search optimized\n\n## Next Steps\n\n1. **Review Generated Content**: Check accuracy and completeness\n2. **Add Missing Sections**: Fill in any gaps identified\n3. **Add Images/Diagrams**: Enhance with visual aids where helpful\n4. **Set Up Doc Site**: Deploy to your documentation platform\n5. **Configure Search**: Set up search functionality\n6. **Add Versioning**: Implement docs versioning for releases\n\nWould you like me to:\n1. Generate additional sections?\n2. Create API reference from TypeScript types?\n3. Add interactive code playgrounds?\n4. Set up automated doc updates from code changes?",
"extensions": [
{
"name": "GitHub",
"command": "npx -y @modelcontextprotocol/server-github",
"is_builtin": false,
"link": "https://block.github.io/goose/docs/mcp/github-mcp",
"environmentVariables": [
{
"name": "GITHUB_PERSONAL_ACCESS_TOKEN",
"description": "GitHub personal access token with repo access",
"required": true
}
]
},
{
"name": "Developer",
"command": "developer",
"is_builtin": true,
"environmentVariables": []
}
]
}