create-oo-component-documentation
github/awesome-copilot
Generate comprehensive, standardized documentation for object-oriented components following C4, Arc42, and IEEE 1016 standards.
What is create-oo-component-documentation?
This skill analyzes object-oriented components and produces industry-standard technical documentation. Use it when you need to create or update component documentation that follows best practices for architecture, interfaces, and implementation details.
- Analyzes component code structure, classes, inheritance, and design patterns
- Generates documentation following C4 Model, Arc42, and IEEE 1016 standards
- Creates architecture diagrams showing component structure, dependencies, and data flow
- Documents public APIs, interfaces, methods, parameters, and return types
- Produces quality attribute analysis covering security, performance, reliability, and maintainability
- Generates usage examples and configuration guidance for developers
How to install create-oo-component-documentation
npx skills add https://github.com/github/awesome-copilot --skill create-oo-component-documentation- Component source code accessible at a local path (folder or single file)
- Source files in supported languages: C#/.NET, Java, TypeScript/JavaScript, or Python
How to use create-oo-component-documentation
- 1.Provide the path to your component (folder or single file) when prompted
- 2.Allow the skill to analyze the code structure, classes, and dependencies
- 3.Review the generated Markdown documentation in `/docs/components/`
- 4.Edit the front matter (title, version, owner, tags) as needed
- 5.Customize usage examples and quality attributes sections for your context
Use cases
- Document a new microservice component before team handoff
- Create standardized architecture documentation for legacy components being refactored
- Generate API reference and usage guide for internal library components
- Produce compliance-ready technical documentation for enterprise components
- Create onboarding documentation for developers joining a project
- Software architects designing component documentation standards
- Backend developers documenting service and library components
- Technical leads preparing components for team review or handoff
- Enterprise teams requiring standardized architectural documentation
- Open source maintainers creating comprehensive component guides
create-oo-component-documentation FAQ
C#/.NET, Java, TypeScript/JavaScript, and Python. Language-specific optimizations are applied for async patterns, dependency injection, frameworks, and module systems.
Documentation is saved in the `/docs/components/` directory with the naming convention `[component-name]-documentation.md`.
It handles both single files and folders. For a single file, it analyzes that file as the main component and examines related files in the same directory.
It aligns with C4 Model (Context, Containers, Components, Code), Arc42 software architecture template, IEEE 1016 Software Design Description standard, and Agile Documentation principles.
Yes, it creates Mermaid diagrams showing component structure, internal dependencies, external dependencies, data flow, and inheritance/composition relationships.
Full instructions (SKILL.md)
Source of truth, from github/awesome-copilot.
name: create-oo-component-documentation description: 'Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.'
Generate Standard OO Component Documentation
Create comprehensive documentation for the object-oriented component(s) at: ${input:ComponentPath}.
Analyze the component by examining code in the provided path. If folder, analyze all source files. If single file, treat as main component and analyze related files in same directory.
Documentation Standards
- DOC-001: Follow C4 Model documentation levels (Context, Containers, Components, Code)
- DOC-002: Align with Arc42 software architecture documentation template
- DOC-003: Comply with IEEE 1016 Software Design Description standard
- DOC-004: Use Agile Documentation principles (just enough documentation that adds value)
- DOC-005: Target developers and maintainers as primary audience
Analysis Instructions
- ANA-001: Determine path type (folder vs single file) and identify primary component
- ANA-002: Examine source code files for class structures and inheritance
- ANA-003: Identify design patterns and architectural decisions
- ANA-004: Document public APIs, interfaces, and dependencies
- ANA-005: Recognize creational/structural/behavioral patterns
- ANA-006: Document method parameters, return values, exceptions
- ANA-007: Assess performance, security, reliability, maintainability
- ANA-008: Infer integration patterns and data flow
Language-Specific Optimizations
- LNG-001: C#/.NET - async/await, dependency injection, configuration, disposal
- LNG-002: Java - Spring framework, annotations, exception handling, packaging
- LNG-003: TypeScript/JavaScript - modules, async patterns, types, npm
- LNG-004: Python - packages, virtual environments, type hints, testing
Error Handling
- ERR-001: Path doesn't exist - provide correct format guidance
- ERR-002: No source files found - suggest alternative locations
- ERR-003: Unclear structure - document findings and request clarification
- ERR-004: Non-standard patterns - document custom approaches
- ERR-005: Insufficient code - focus on available information, highlight gaps
Output Format
Generate well-structured Markdown with clear heading hierarchy, code blocks, tables, bullet points, and proper formatting for readability and maintainability.
File Location
The documentation should be saved in the /docs/components/ directory and named according to the convention: [component-name]-documentation.md.
Required Documentation Structure
The documentation file must follow the template below, ensuring that all sections are filled out appropriately. The front matter for the markdown should be structured correctly as per the example following:
---
title: [Component Name] - Technical Documentation
component_path: `${input:ComponentPath}`
version: [Optional: e.g., 1.0, Date]
date_created: [YYYY-MM-DD]
last_updated: [Optional: YYYY-MM-DD]
owner: [Optional: Team/Individual responsible for this component]
tags: [Optional: List of relevant tags or categories, e.g., `component`,`service`,`tool`,`infrastructure`,`documentation`,`architecture` etc]
---
# [Component Name] Documentation
[A short concise introduction to the component and its purpose within the system.]
## 1. Component Overview
### Purpose/Responsibility
- OVR-001: State component's primary responsibility
- OVR-002: Define scope (included/excluded functionality)
- OVR-003: Describe system context and relationships
## 2. Architecture Section
- ARC-001: Document design patterns used (Repository, Factory, Observer, etc.)
- ARC-002: List internal and external dependencies with purposes
- ARC-003: Document component interactions and relationships
- ARC-004: Include visual diagrams (UML class, sequence, component)
- ARC-005: Create mermaid diagram showing component structure, relationships, and dependencies
### Component Structure and Dependencies Diagram
Include a comprehensive mermaid diagram that shows:
- **Component structure** - Main classes, interfaces, and their relationships
- **Internal dependencies** - How components interact within the system
- **External dependencies** - External libraries, services, databases, APIs
- **Data flow** - Direction of dependencies and interactions
- **Inheritance/composition** - Class hierarchies and composition relationships
```mermaid
graph TD
subgraph "Component System"
A[Main Component] --> B[Internal Service]
A --> C[Internal Repository]
B --> D[Business Logic]
C --> E[Data Access Layer]
end
subgraph "External Dependencies"
F[External API]
G[Database]
H[Third-party Library]
I[Configuration Service]
end
A --> F
E --> G
B --> H
A --> I
classDiagram
class MainComponent {
+property: Type
+method(): ReturnType
+asyncMethod(): Promise~Type~
}
class InternalService {
+businessOperation(): Result
}
class ExternalAPI {
<<external>>
+apiCall(): Data
}
MainComponent --> InternalService
MainComponent --> ExternalAPI
3. Interface Documentation
- INT-001: Document all public interfaces and usage patterns
- INT-002: Create method/property reference table
- INT-003: Document events/callbacks/notification mechanisms
| Method/Property | Purpose | Parameters | Return Type | Usage Notes |
|---|---|---|---|---|
| [Name] | [Purpose] | [Parameters] | [Type] | [Notes] |
4. Implementation Details
- IMP-001: Document main implementation classes and responsibilities
- IMP-002: Describe configuration requirements and initialization
- IMP-003: Document key algorithms and business logic
- IMP-004: Note performance characteristics and bottlenecks
5. Usage Examples
Basic Usage
// Basic usage example
var component = new ComponentName();
component.DoSomething();
Advanced Usage
// Advanced configuration patterns
var options = new ComponentOptions();
var component = ComponentFactory.Create(options);
await component.ProcessAsync(data);
- USE-001: Provide basic usage examples
- USE-002: Show advanced configuration patterns
- USE-003: Document best practices and recommended patterns
6. Quality Attributes
- QUA-001: Security (authentication, authorization, data protection)
- QUA-002: Performance (characteristics, scalability, resource usage)
- QUA-003: Reliability (error handling, fault tolerance, recovery)
- QUA-004: Maintainability (standards, testing, documentation)
- QUA-005: Extensibility (extension points, customization options)
7. Reference Information
- REF-001: List dependencies with versions and purposes
- REF-002: Complete configuration options reference
- REF-003: Testing guidelines and mock setup
- REF-004: Troubleshooting (common issues, error messages)
- REF-005: Related documentation links
- REF-006: Change history and migration notes
Related skills
More from github/awesome-copilot and the wider catalog.

create-readme
Generate a professional, well-structured README.md for your project in seconds.

create-specification
Create AI-optimized specification files with structured templates for clear, machine-readable requirements.

create-spring-boot-java-project
Generate a Spring Boot 3.4.5 project skeleton with PostgreSQL, Redis, MongoDB, and Docker Compose pre-configured.

create-spring-boot-kotlin-project
Generate a Spring Boot 3.4.5 Kotlin project skeleton with PostgreSQL, Redis, MongoDB, and Docker Compose.

create-technical-spike
Generate structured, time-boxed spike documents to research and resolve critical technical decisions before coding starts.

create-tldr-page
Create concise tldr command reference pages from documentation URLs and examples.