Loading...
Loading...
Technical documentation writer specializing in creating clear, well-structured markdown documents for algorithms, system design, interview preparation, and code documentation. Use when writing README files, algorithm explanations, system design docs, or technical guides.
npx skill4agent add yennanliu/cs_basics markdown-doc-writer# Title
Brief description of what this document covers.
## Table of Contents
- [Section 1](#section-1)
- [Section 2](#section-2)
## Section 1
Content...
## Section 2
Content...
## References
- [Link 1](url)# Problem Number: Problem Title
**Difficulty**: Easy/Medium/Hard
**Topics**: Array, Two Pointers, Hash Table
**Companies**: Google, Amazon, Meta
## Problem Statement
[Clear description of the problem]
**Example 1:**
**Constraints:**
- [List constraints]
## Approach
### Intuition
[Explain the key insight in simple terms]
### Algorithm
1. [Step 1]
2. [Step 2]
3. [Step 3]
### Complexity Analysis
- **Time Complexity**: O(n) - [Explain why]
- **Space Complexity**: O(1) - [Explain why]
## Solution
### Java
```java
class Solution {
public ReturnType method(InputType param) {
// Implementation
}
}class Solution:
def method(self, param: InputType) -> ReturnType:
# Implementation| Approach | Time | Space | Notes |
|---|---|---|---|
| Approach 1 | O(n) | O(1) | Optimal |
| Approach 2 | O(n²) | O(1) | Simpler code |
### 3. System Design Documentation Format
**Follow the template structure:**
```markdown
# System Name: Brief Description
## 1. Requirements
### Functional Requirements
- Feature 1: [Description]
- Feature 2: [Description]
### Non-Functional Requirements
- **Scale**: X million DAU, Y QPS
- **Performance**: p99 latency < Z ms
- **Availability**: 99.9% uptime
## 2. Capacity Estimation
### Traffic
- Daily Active Users: 100M
- Requests per user: 10/day
- QPS: 100M * 10 / 86400 ≈ 11,574
### Storage
- Per user data: 1KB
- Total: 100M * 1KB = 100GB
### Bandwidth
- Average request size: 10KB
- Bandwidth: 11,574 QPS * 10KB ≈ 115MB/s
## 3. API Design
## 4. High-Level Architecture
## 5. Database Design
### Schema
```sql
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);usernamecreated_at| Decision | Chosen | Alternative | Rationale |
|---|---|---|---|
| Database | PostgreSQL | MongoDB | Need ACID |
### 4. Code Formatting
**Inline code**: Use `backticks` for variable names, commands, short code
**Code blocks**: Use fenced code blocks with language
```markdown
```java
public class Example {
// Code here
}
**Supported languages:**
- `java`, `python`, `javascript`, `sql`, `bash`
- `json`, `yaml`, `xml`, `markdown`
- `c`, `cpp`, `scala`, `go`
### 5. Visual Elements
**Tables:**
```markdown
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Data 1 | Data 2 | Data 3 |Unordered:
- Item 1
- Nested item
- Item 2
Ordered:
1. First step
2. Second step
3. Third step*italic* or _italic_
**bold** or __bold__
***bold italic***
`code`
~~strikethrough~~[Link text](URL)
[Link with title](URL "Title")
[Reference link][ref]
[ref]: URL "Title"
## Complexity Analysis
### Time Complexity: O(n log n)
- Sorting takes O(n log n)
- Single pass takes O(n)
- Overall: O(n log n)
### Space Complexity: O(n)
- Hash map stores n elements: O(n)
- Result array: O(n)
- Overall: O(n)
### Optimization Notes
- Can reduce space to O(1) by modifying input in-place
- Trade-off: Destroys original input| Notation | Name | Example |
|----------|------|---------|
| O(1) | Constant | Array access |
| O(log n) | Logarithmic | Binary search |
| O(n) | Linear | Array scan |
| O(n log n) | Linearithmic | Merge sort |
| O(n²) | Quadratic | Nested loops |
| O(2ⁿ) | Exponential | Recursive Fibonacci |
| O(n!) | Factorial | Permutations |The algorithm basically works by iterating through the array and
then it checks if the element is what we're looking for.The algorithm iterates through the array to find the target element.# Pattern Name
## When to Use
- [Characteristic 1]
- [Characteristic 2]
## Template Code
```python
def pattern_template(arr):
# Step 1: Setup
# Step 2: Main logic
# Step 3: Return result
### 9. Cheat Sheet Format
**Keep it scannable:**
```markdown
# Topic Cheat Sheet
## Quick Reference
| Operation | Syntax | Complexity |
|-----------|--------|------------|
| Access | arr[i] | O(1) |
| Search | arr.indexOf(x) | O(n) |
## Common Patterns
### Pattern 1
```code
// Code snippet// Code snippet
### 10. Document Maintenance
**Version control:**
- Use git to track changes
- Write meaningful commit messages
- Keep documents up to date with code
**Cross-references:**
- Link related documents
- Reference source code files
- Point to external resources
**Validation:**
- Check all links work
- Verify code examples compile
- Test complexity analysis accuracy
## Project-Specific Guidelines
**For CS_basics repository:**
1. **Algorithm problems**: Use detailed format with multiple languages
2. **System design**: Follow `00_template.md` structure
3. **Cheat sheets**: Keep in `doc/` directory
4. **Cross-language**: Maintain consistency across Java/Python implementations
5. **Interview prep**: Focus on pattern recognition and problem-solving approach
**File organization:**
## Quality Checklist
Before finalizing documentation:
- [ ] Clear title and description
- [ ] Proper heading hierarchy
- [ ] Code examples tested and working
- [ ] Complexity analysis included
- [ ] Consistent formatting
- [ ] No broken links
- [ ] Spell-checked
- [ ] Follows project conventions
- [ ] Related content linked
## Tools & References
**Markdown validation:**
- Check syntax with markdown linters
- Preview before committing
- Use consistent line breaks
**Useful symbols:**
- ✅ Checkmark for correct approach
- ❌ X for incorrect approach
- ⚠️ Warning for gotchas
- 💡 Bulb for tips
- 📝 Note for important points