Skip to main content
ClaudeWave
Skill238 repo starsupdated 4mo ago

format-markdown-table

This Claude Code skill generates properly formatted markdown tables from structured data with configurable column alignment and consistent spacing. Use it when creating report statistics, comparison tables, summary dashboards, or any documentation requiring well-formatted tabular data presentation in markdown format.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/maslennikov-ig/claude-code-orchestrator-kit /tmp/format-markdown-table && cp -r /tmp/format-markdown-table/.claude/skills/format-markdown-table ~/.claude/skills/format-markdown-table
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Format Markdown Table

Create properly formatted markdown tables with alignment and consistent spacing.

## When to Use

- Report statistics tables
- Comparison tables
- Summary data presentation
- Metric dashboards in reports

## Instructions

### Step 1: Receive Table Data

Accept headers and rows as input.

**Expected Input**:
```json
{
  "headers": ["Column 1", "Column 2", "Column 3"],
  "rows": [
    ["Value 1", "Value 2", "Value 3"],
    ["Value 4", "Value 5", "Value 6"]
  ],
  "alignment": ["left", "center", "right"]
}
```

**Alignment** (optional):
- `left`: Left-aligned (default)
- `center`: Center-aligned
- `right`: Right-aligned

### Step 2: Calculate Column Widths

Determine maximum width for each column.

**Width Calculation**:
- Include header width
- Include all row values
- Add padding (1 space on each side)
- Minimum width: 3 characters

### Step 3: Format Header Row

Create header row with proper spacing.

**Format**:
```
| Header 1 | Header 2 | Header 3 |
```

### Step 4: Format Separator Row

Create separator with alignment indicators.

**Alignment Indicators**:
- Left: `:---` or `---`
- Center: `:---:`
- Right: `---:`

**Format**:
```
|----------|:--------:|---------:|
```

### Step 5: Format Data Rows

Create data rows with consistent spacing.

**Format**:
```
| Value 1  | Value 2  | Value 3  |
| Value 4  | Value 5  | Value 6  |
```

### Step 6: Return Complete Table

Return formatted markdown table.

**Expected Output**:
```markdown
| Column 1 | Column 2 | Column 3 |
|----------|:--------:|---------:|
| Value 1  | Value 2  | Value 3  |
| Value 4  | Value 5  | Value 6  |
```

## Error Handling

- **Empty Headers**: Return error requesting headers
- **Empty Rows**: Return warning, create table with headers only
- **Mismatched Columns**: Pad short rows with empty cells
- **Invalid Alignment**: Use 'left' as default, warn

## Examples

### Example 1: Simple Statistics Table

**Input**:
```json
{
  "headers": ["Metric", "Count", "Percentage"],
  "rows": [
    ["Critical Bugs", "3", "13%"],
    ["High Bugs", "8", "35%"],
    ["Medium Bugs", "12", "52%"]
  ],
  "alignment": ["left", "right", "right"]
}
```

**Output**:
```markdown
| Metric        | Count | Percentage |
|---------------|------:|-----------:|
| Critical Bugs |     3 |        13% |
| High Bugs     |     8 |        35% |
| Medium Bugs   |    12 |        52% |
```

### Example 2: Comparison Table

**Input**:
```json
{
  "headers": ["Feature", "Before", "After"],
  "rows": [
    ["Build Time", "45s", "12s"],
    ["Test Time", "2m 30s", "1m 15s"],
    ["Bundle Size", "2.3 MB", "1.8 MB"]
  ],
  "alignment": ["left", "center", "center"]
}
```

**Output**:
```markdown
| Feature     | Before  |  After  |
|-------------|:-------:|:-------:|
| Build Time  |   45s   |   12s   |
| Test Time   | 2m 30s  | 1m 15s  |
| Bundle Size | 2.3 MB  | 1.8 MB  |
```

### Example 3: Priority Distribution

**Input**:
```json
{
  "headers": ["Priority", "Open", "Fixed", "Total"],
  "rows": [
    ["P0", "2", "5", "7"],
    ["P1", "5", "3", "8"],
    ["P2", "12", "8", "20"]
  ]
}
```

**Output**:
```markdown
| Priority | Open | Fixed | Total |
|----------|------|-------|-------|
| P0       | 2    | 5     | 7     |
| P1       | 5    | 3     | 8     |
| P2       | 12   | 8     | 20    |
```

### Example 4: Empty Rows (Header Only)

**Input**:
```json
{
  "headers": ["Name", "Value", "Status"],
  "rows": []
}
```

**Output**:
```markdown
| Name | Value | Status |
|------|-------|--------|
```

## Validation

- [ ] Formats headers correctly
- [ ] Creates proper separators
- [ ] Aligns columns as specified
- [ ] Handles various data types (numbers, text)
- [ ] Pads columns for consistent width
- [ ] Handles empty rows gracefully

## Supporting Files

- `examples.md`: Table formatting examples (see Supporting Files section)