confluence
SpillwaveSolutions/confluence-skillManage Confluence documentation with downloads, uploads, conversions, and diagrams. Use when asked to "download Confluence pages", "upload to Confluence", "convert Wiki Markup", "sync markdown to Confluence", "create Confluence page", or "handle Confluence images".
SKILL.md
name: confluence description: Manage Confluence documentation with downloads, uploads, conversions, and diagrams. Use when asked to "download Confluence pages", "upload to Confluence", "convert Wiki Markup", "sync markdown to Confluence", "create Confluence page", or "handle Confluence images".
Confluence Management Skill
Manage Confluence documentation through Claude Code: download pages to Markdown, upload large documents with images, convert between formats, and integrate Mermaid/PlantUML diagrams.
Table of Contents
Quick Decision Matrix
| Task | Tool | Notes |
|---|---|---|
| Read pages | MCP tools | confluence_get_page, confluence_search |
| Small text-only uploads (<10KB) | MCP tools | confluence_create_page, confluence_update_page |
| Large documents (>10KB) | upload_confluence_v2.py |
REST API, no size limits |
| Documents with images | upload_confluence_v2.py |
Handles attachments automatically |
| Git-to-Confluence sync | mark CLI | Best for CI/CD workflows |
| Download pages to Markdown | download_confluence.py |
Converts macros, downloads attachments |
MCP Size Limits
MCP tools have size limits (10-20KB) for uploads. For large documents or pages with images, use the REST API via upload_confluence_v2.py:
# Upload large document
python3 ~/.claude/skills/confluence/scripts/upload_confluence_v2.py \
document.md --id 780369923
# Dry-run preview
python3 ~/.claude/skills/confluence/scripts/upload_confluence_v2.py \
document.md --id 780369923 --dry-run
MCP works for reading pages but not for uploading large content.
Prerequisites
Required
- Atlassian MCP Server (
mcp__atlassian-evinova) with Confluence credentials
Optional
- mark CLI: Git-to-Confluence sync (
brew install kovetskiy/mark/mark) - Mermaid CLI: Diagram rendering (
npm install -g @mermaid-js/mermaid-cli)
Core Workflows
Download Pages to Markdown
# Single page
python3 ~/.claude/skills/confluence/scripts/download_confluence.py 123456789
# With child pages
python3 ~/.claude/skills/confluence/scripts/download_confluence.py --download-children 123456789
# Custom output directory
python3 ~/.claude/skills/confluence/scripts/download_confluence.py --output-dir ./docs 123456789
See Downloading Guide for details.
Upload Pages with Images
- Convert diagrams to images first using
design-doc-mermaidorplantumlskills - Reference images with standard markdown:
 - Upload via REST API:
python3 ~/.claude/skills/confluence/scripts/upload_confluence_v2.py \
document.md --id PAGE_ID
See Image Handling Best Practices for details.
Search Confluence
mcp__atlassian-evinova__confluence_search({
query: 'space = "DEV" AND text ~ "API"',
limit: 10
})
Create/Update Pages (Small Documents)
// Create page
mcp__atlassian-evinova__confluence_create_page({
space_key: "DEV",
title: "API Documentation",
content: "h1. Overview\n\nContent here...",
content_format: "wiki"
})
// Update page
mcp__atlassian-evinova__confluence_update_page({
page_id: "123456789",
title: "Updated Title",
content: "h1. New Content",
version_comment: "Updated via Claude Code"
})
Sync from Git (mark CLI)
Add metadata to Markdown files:
<!-- Space: DEV -->
<!-- Parent: Documentation -->
<!-- Title: API Guide -->
# API Guide
Content...
Sync to Confluence:
mark -f documentation.md
mark --dry-run -f documentation.md # Preview first
See mark Tool Guide for details.
Convert Between Formats
See Conversion Guide for the complete conversion matrix.
Quick reference:
| Markdown | Wiki Markup |
|---|---|
# Heading |
h1. Heading |
**bold** |
*bold* |
*italic* |
_italic_ |
`code` |
{{code}} |
[text](url) |
[text|url] |
Reference Documentation
Detailed guides in the references/ directory:
| Guide | Purpose |
|---|---|
| Wiki Markup Reference | Complete syntax for Confluence Wiki Markup |
| Conversion Guide | Markdown to Wiki Markup conversion rules |
| Storage Format | Confluence XML storage format details |
| Image Handling | Workflows for images, Mermaid, PlantUML |
| mark Tool Guide | Git-to-Confluence sync with mark CLI |
| Troubleshooting | Common errors and solutions |
Available MCP Tools
| Tool | Description |
|---|---|
confluence_search |
Search using CQL or text |
confluence_get_page |
Retrieve page by ID or title |
confluence_create_page |
Create new page |
confluence_update_page |
Update existing page |
confluence_delete_page |
Delete page |
confluence_get_page_children |
Get child pages |
confluence_add_label |
Add label to page |
confluence_get_labels |
Get page labels |
confluence_add_comment |
Add comment to page |
confluence_get_comments |
Get page comments |
Utility Scripts
| Script | Purpose |
|---|---|
scripts/upload_confluence_v2.py |
Upload large documents with images |
scripts/download_confluence.py |
Download pages to Markdown |
scripts/convert_markdown_to_wiki.py |
Convert Markdown to Wiki Markup |
scripts/convert_wiki_to_markdown.py |
Convert Wiki Markup to Markdown |
scripts/render_mermaid.py |
Render Mermaid diagrams |
Version: 2.1.0 | Last Updated: 2025-01-21
README
Confluence Skill for Claude Code
A comprehensive Claude Code skill that provides expert guidance for managing Confluence documentation, including Wiki Markup mastery, Markdown conversion, Mermaid diagram integration, and seamless interaction with the Atlassian MCP server.
Table of Contents
- What is a Skill?
- How This Skill Works
- Installing with Skilz (Universal Installer)
- Installation Levels
- Multi-Instance Confluence Support
- Prerequisites
- Quick Start
- Uploading Markdown to Confluence
- Features
- File Structure
- Key Documentation
- Common Workflows
- Best Practices
- Troubleshooting
- Integration with Other Skills
- Advanced Usage
- CI/CD Integration
- Updates and Maintenance
- Support
- Contributing
- License
- Related Resources
What is a Skill?
A skill is an instruction manual that teaches Claude Code how to use MCP (Model Context Protocol) tools effectively. Think of it this way:
- MCP Server (Atlassian MCP) = The tool that provides access to Confluence APIs
- Skill (this repository) = The instruction manual that guides Claude on best practices, conversion patterns, and workflows for using that tool
Claude Code can discover and use MCP tools automatically, but skills provide the critical context, workflows, and domain expertise that make interactions efficient, reliable, and consistent with documentation best practices.
How This Skill Works
This skill works hand-in-glove with the Atlassian MCP server (mcp__atlassian-evinova). The MCP provides raw access to Confluence's API capabilities, while this skill provides:
- Format conversion expertise for Markdown to Wiki Markup transformations
- Diagram rendering workflows for Mermaid to PNG/SVG conversion
- CQL query construction guidance and examples
- mark CLI integration for Git-to-Confluence synchronization
- Best practices for page creation, updates, and content organization
- Troubleshooting guides for common errors and edge cases
When you ask Claude Code to work with Confluence, this skill ensures operations follow proven patterns, handle format conversions correctly, and maintain documentation quality.
Installing with Skilz (Universal Installer)
The recommended way to install this skill across different AI coding agents is using the skilz universal installer.
Install Skilz
pip install skilz
This skill supports Agent Skill Standard which means it supports 14 plus coding agents including Claude Code, OpenAI Codex, Cursor and Gemini.
Git URL Options
You can use either -g or --git with HTTPS or SSH URLs:
# HTTPS URL
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill
# SSH URL
skilz install --git [email protected]:SpillwaveSolutions/confluence-skill.git
Claude Code
Install to user home (available in all projects):
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill
Install to current project only:
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill --project
OpenCode
Install for OpenCode:
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill --agent opencode
Project-level install:
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill --project --agent opencode
Gemini
Project-level install for Gemini:
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill --agent gemini
OpenAI Codex
Install for OpenAI Codex:
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill --agent codex
Project-level install:
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill --project --agent codex
Install from Skillzwave Marketplace
# Claude to user home dir ~/.claude/skills
skilz install SpillwaveSolutions_confluence-skill/confluence
# Claude skill in project folder ./claude/skills
skilz install SpillwaveSolutions_confluence-skill/confluence --project
# OpenCode install to user home dir ~/.config/opencode/skills
skilz install SpillwaveSolutions_confluence-skill/confluence --agent opencode
# OpenCode project level
skilz install SpillwaveSolutions_confluence-skill/confluence --agent opencode --project
# OpenAI Codex install to user home dir ~/.codex/skills
skilz install SpillwaveSolutions_confluence-skill/confluence
# OpenAI Codex project level ./.codex/skills
skilz install SpillwaveSolutions_confluence-skill/confluence --agent opencode --project
# Gemini CLI (project level) -- only works with project level
skilz install SpillwaveSolutions_confluence-skill/confluence --agent gemini
See this site skill Listing to see how to install this exact skill to 14+ different coding agents.
Other Supported Agents
Skilz supports 14+ coding agents including Claude Code, OpenAI Codex, OpenCode, Cursor, Gemini CLI, GitHub Copilot CLI, Windsurf, Qwen Code, Aidr, and more.
For the full list of supported platforms, visit SkillzWave.ai/platforms or see the skilz-cli GitHub repository
Largest Agentic Marketplace for AI Agent Skills and SpillWave: Leaders in AI Agent Development.
Installation Levels
This skill can be installed at multiple levels depending on your organizational structure and needs:
1. Global Installation (User Level)
Install in your home directory for use across all projects:
~/.claude/skills/confluence/
Use case: You work with a single Confluence instance across all projects.
2. Project-Level Installation
Install within a specific project directory:
/path/to/project/.claude/skills/confluence/
Use case: Project-specific Confluence configuration, custom templates, or documentation workflows that differ from other projects.
3. Workspace-Level Installation
Install at a workspace directory that groups multiple related projects:
~/workspace/acme-corp/.claude/skills/confluence/
~/workspace/tech-startup/.claude/skills/confluence/
Use case:
- Client-based workspaces: Different documentation standards for different clients
- Department-based workspaces: Engineering vs Product vs Support documentation patterns
- Company-based workspaces: Multiple clients with different Confluence instances
Installation Priority
Claude Code follows this priority order when loading skills:
- Project-level (
.claude/skills/in current directory) - Workspace-level (
.claude/skills/in parent directories) - Global-level (
~/.claude/skills/in home directory)
This allows project-specific customizations to override workspace or global defaults.
Multi-Instance Confluence Support
For organizations that need to connect to multiple Confluence instances (multiple clients, acquisitions, different departments), you can configure the Atlassian MCP at different levels using .mcp.json files.
Example: Multiple Client Workspaces
Scenario: You're a consultant managing documentation for multiple clients, each with their own Atlassian instance.
# Client 1 workspace
~/clients/acme-industries/
├── .mcp.json # Confluence config for acme-industries.atlassian.net
├── .claude/
│ ├── skills/confluence/ # Client-specific templates (optional)
│ └── settings.local.json
├── project-alpha/
│ └── docs/
└── project-beta/
└── docs/
# Client 2 workspace
~/clients/globex-corp/
├── .mcp.json # Confluence config for globex.atlassian.net
├── .claude/
│ ├── skills/confluence/ # Client-specific templates (optional)
│ └── settings.local.json
├── web-app/
│ └── documentation/
└── mobile-app/
└── documentation/
Example: Department-Based Workspaces
Scenario: Large organization with different Confluence spaces per department.
# Engineering workspace
~/workspaces/engineering/
├── .mcp.json # Confluence config focused on DEV space
├── .claude/skills/confluence/ # Engineering documentation patterns
├── backend-services/
│ └── docs/
└── frontend-apps/
└── docs/
# Product workspace
~/workspaces/product/
├── .mcp.json # Confluence config focused on PRODUCT space
├── .claude/skills/confluence/ # Product documentation patterns
├── feature-specs/
└── roadmap/
.mcp.json Configuration
Each workspace can have its own .mcp.json file with Confluence credentials:
{
"mcpServers": {
"atlassian-evinova": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"CONFLUENCE_URL": "https://acme-industries.atlassian.net/wiki",
"CONFLUENCE_API_TOKEN": "your-api-token-here",
"CONFLUENCE_EMAIL": "[email protected]",
"CONFLUENCE_SPACES_FILTER": "DEV,API,DOCS"
}
}
}
}
Configuration Priority
Claude Code uses this priority for .mcp.json files:
- Project directory (most specific)
- Workspace directory (parent directories)
- Global config (
~/.claude/mcp.json)
This allows you to:
- Connect to different Confluence instances per workspace
- Use different credentials per client/department
- Override global Confluence settings for specific projects
- Maintain separate Confluence configurations without conflicts
Prerequisites
Required MCP Server
The Atlassian MCP server must be configured in Claude Code:
npm install -g @modelcontextprotocol/server-atlassian
Configure in ~/.claude/mcp.json or workspace-level .mcp.json:
{
"mcpServers": {
"atlassian-evinova": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_API_TOKEN": "your-api-token",
"CONFLUENCE_EMAIL": "[email protected]",
"CONFLUENCE_SPACES_FILTER": "DEV,DOCS"
}
}
}
}
Confluence API Token
Generate a Confluence API token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Copy the token and add to your
.mcp.jsonconfiguration
Permissions
Ensure your Confluence account has appropriate permissions for:
- Creating/updating pages
- Searching content
- Managing spaces
- Adding labels and comments
- Uploading attachments
Optional Tools
For full functionality, install these optional tools:
# mark CLI for Git-to-Confluence synchronization
brew install kovetskiy/mark/mark
# OR
go install github.com/kovetskiy/mark@latest
# Mermaid CLI for diagram rendering
npm install -g @mermaid-js/mermaid-cli
# Additional conversion tools (optional)
npm install -g markdown2confluence
Quick Start
1. Install the Skill
Using skilz (recommended):
pip install skilz
skilz install -g https://github.com/SpillwaveSolutions/confluence-skill
Or manually:
# Global installation
mkdir -p ~/.claude/skills/
cd ~/.claude/skills/
git clone https://github.com/SpillwaveSolutions/confluence-skill confluence
# OR workspace installation
mkdir -p ~/workspace/acme-corp/.claude/skills/
cd ~/workspace/acme-corp/.claude/skills/
git clone https://github.com/SpillwaveSolutions/confluence-skill confluence
# OR project installation
mkdir -p /path/to/project/.claude/skills/
cd /path/to/project/.claude/skills/
git clone https://github.com/SpillwaveSolutions/confluence-skill confluence
2. Configure Atlassian MCP
Create or update .mcp.json at the appropriate level:
{
"mcpServers": {
"atlassian-evinova": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_API_TOKEN": "your-token-here",
"CONFLUENCE_EMAIL": "[email protected]"
}
}
}
}
3. Start Using Confluence with Claude Code
Simply ask Claude Code to work with Confluence:
"Create a Confluence page from this Markdown document in the DEV space"
"Search Confluence for pages about API authentication"
"Convert this Wiki Markup to Markdown"
"Update the 'Getting Started' page with this new content"
"Render these Mermaid diagrams and upload to Confluence"
Claude Code will automatically:
- Validate space keys
- Convert between Markdown and Wiki Markup
- Render Mermaid diagrams to images
- Construct proper CQL queries
- Handle page hierarchies
- Follow best practices from this skill
Uploading Markdown to Confluence
The skill includes a powerful upload script (scripts/upload_confluence.py) that converts Markdown files to Confluence pages.
Quick Upload Examples
Smart upload (reads metadata from frontmatter):
python3 ~/.claude/skills/confluence/scripts/upload_confluence.py page.md
Update specific page by ID:
python3 ~/.claude/skills/confluence/scripts/upload_confluence.py page.md --id 450855912
Create new page in a space:
python3 ~/.claude/skills/confluence/scripts/upload_confluence.py page.md --space ARCP --parent-id 123456
Preview without uploading:
python3 ~/.claude/skills/confluence/scripts/upload_confluence.py page.md --dry-run
Download, Edit, Upload Workflow
The most powerful feature is the seamless workflow for updating existing pages:
# 1. Download a page (gets frontmatter with all metadata)
python3 ~/.claude/skills/confluence/scripts/download_confluence.py 450855912
# 2. Edit the markdown file locally
vim Data_Source_Registry_Manager_API.md
# 3. Upload changes (reads everything from frontmatter - zero configuration!)
python3 ~/.claude/skills/confluence/scripts/upload_confluence.py Data_Source_Registry_Manager_API.md
The frontmatter from the download contains:
- Page ID (for updates)
- Space key
- Current version number (auto-increments)
- Parent page ID
- Title
Mermaid Diagram Support
Mermaid diagrams in your Markdown are automatically rendered to SVG images and uploaded as attachments:
## Architecture Diagram
```mermaid
graph TD
A[Client] --> B[Server]
B --> C[Database]
```
Requirements:
npm install -g @mermaid-js/mermaid-cli
Credential Discovery
The upload script searches for credentials in this order:
- Environment variables (
CONFLUENCE_URL,CONFLUENCE_USERNAME,CONFLUENCE_API_TOKEN) .envin current directory.env.confluencein current directory.env.jirain current directory.env.atlassianin current directory- Walk up parent directories for above files
- MCP config (
~/.config/mcp/.mcp.json)
Create a .env file with your credentials:
CONFLUENCE_URL=https://your-domain.atlassian.net
[email protected]
CONFLUENCE_API_TOKEN=your_api_token_here
See examples/.env.confluence.example for a template.
Upload CLI Options
usage: upload_confluence.py [-h] [--id PAGE_ID] [--space SPACE] [--title TITLE]
[--parent-id PARENT_ID] [--ignore-frontmatter]
[--dry-run] [--env-file ENV_FILE]
[--update-frontmatter] [--output-dir OUTPUT_DIR]
file
positional arguments:
file Markdown file to upload
options:
--id PAGE_ID Page ID (for updates)
--space SPACE Space key (required for new pages)
--title TITLE Page title (overrides frontmatter/H1)
--parent-id PARENT_ID Parent page ID (specify parent to move page)
--ignore-frontmatter Ignore parent_id in frontmatter (update page in place without moving)
--dry-run Preview without uploading
--env-file ENV_FILE Path to .env file with credentials
--update-frontmatter Update markdown file frontmatter after upload
--output-dir OUTPUT_DIR Directory for generated diagrams
Parent Relationship Control (IMPORTANT)
The script's handling of parent relationships requires attention during migrations:
- Default behavior: Uses
parent.idfrom YAML frontmatter if present --ignore-frontmatter: Ignores frontmatter parent, updates content only--parent-id: Explicitly sets parent (overrides frontmatter)- Combined:
--ignore-frontmatter --parent-id X= full control
Common Scenarios:
# Content-only update (no parent change)
python3 upload_confluence.py --id 123456 --ignore-frontmatter page.md
# Content update + explicit move to new parent
python3 upload_confluence.py --id 123456 --parent-id 789012 --ignore-frontmatter page.md
# Use frontmatter parent (legacy behavior)
python3 upload_confluence.py --id 123456 page.md
Critical Warning: When restoring content from backup files after moving pages, always use --ignore-frontmatter to prevent inadvertent moves back to original parents. See PARENT_RELATIONSHIP_GUIDE.md for details.
Frontmatter Example
When you download a page, it includes complete metadata:
---
title: Data Source Registry Manager API
confluence:
id: '450855912'
space: ARCP
type: page
version: 2
confluence_url: https://your-domain.atlassian.net/wiki/spaces/ARCP/pages/450855912
parent:
id: '438862162'
title: PDR Components
file: PDR_Components.md
breadcrumb:
- id: '205127682'
title: Platform Home
- id: '438862162'
title: PDR Components
- id: '450855912'
title: Data Source Registry Manager API
exported_at: '2025-11-06 12:03:44'
exported_by: confluence_downloader
---
On upload, the script:
- Reads
confluence.idto update existing page - Reads
confluence.versionto auto-increment to version 3 - Reads
confluence.spaceto use for creation if no ID - Reads
parent.idto set parent page relationship
Script Installation
Install Python dependencies:
cd ~/.claude/skills/confluence/scripts
pip3 install -r requirements.txt
Optional (for Mermaid diagrams):
npm install -g @mermaid-js/mermaid-cli
Features
Page Management
- Create pages with proper hierarchy
- Update existing pages
- Search with CQL (Confluence Query Language)
- Get page details and content
- Delete pages
- Manage page children and relationships
Format Conversion
- Markdown to Confluence Wiki Markup
- Wiki Markup to Markdown
- Preserve formatting and structure
- Handle nested elements (lists, tables, code blocks)
- Convert inline formatting (bold, italic, code)
Diagram Integration
- Render Mermaid diagrams to PNG/SVG
- Extract diagrams from Markdown files
- Upload diagrams as attachments
- Embed diagrams in Confluence pages
- Support all Mermaid diagram types (flowchart, sequence, class, etc.)
Git Integration (mark CLI)
- Sync Markdown files from Git to Confluence
- Automatic metadata management
- CI/CD integration patterns
- Batch synchronization workflows
Content Organization
- Add labels to pages
- Create page hierarchies with parent/child relationships
- Manage comments
- Search with advanced CQL queries
- Organize content with proper structure
Batch Operations
- Create multiple pages from directory structure
- Sync entire documentation repositories
- Bulk label management
- Mass updates with version control
File Structure
~/.claude/skills/confluence/
├── CLAUDE.md # Architecture guide for Claude Code
├── README.md # This file
├── SKILL.md # Detailed skill documentation
├── QUICK_REFERENCE.md # Command cheat sheet
├── INSTALLATION.md # Installation guide
├── PARENT_RELATIONSHIP_GUIDE.md # Parent relationship handling guide (CRITICAL)
├── scripts/
│ ├── upload_confluence.py # Upload Markdown to Confluence
│ ├── download_confluence.py # Download Confluence pages to Markdown
│ ├── convert_markdown_to_wiki.py # Markdown to Wiki Markup converter
│ ├── render_mermaid.py # Mermaid diagram renderer
│ └── generate_mark_metadata.py # mark metadata generator
├── references/
│ ├── wiki_markup_guide.md # Complete Wiki Markup reference
│ ├── conversion_guide.md # Conversion rules and edge cases
│ └── mark_tool_guide.md # mark CLI documentation
├── examples/
│ └── sample-confluence-page.md # Example Markdown document
└── assets/
└── (diagram examples)
Key Documentation
SKILL.md (Primary Reference)
Comprehensive workflow documentation including:
- Page creation and update workflows
- Format conversion patterns
- Mermaid diagram integration
- mark CLI usage and CI/CD integration
- CQL query patterns
- Troubleshooting guide
- Best practices
QUICK_REFERENCE.md
Quick command reference for:
- Common tasks
- Format conversion cheat sheet
- CQL search examples
- mark CLI commands
- Python script usage
PARENT_RELATIONSHIP_GUIDE.md (CRITICAL)
Essential reading for migrations and content restoration:
- Root cause analysis of parent relationship issues
- New
--ignore-frontmatterand--parent-idoptions - Usage examples and decision matrix
- Migration workflow patterns
- Troubleshooting parent move issues
- PDR migration case study
Read this guide before:
- Large-scale documentation restructures
- Content restoration after moves
- Batch page migrations
- Any operation involving parent relationships
references/wiki_markup_guide.md
Complete Wiki Markup syntax reference:
- Text formatting
- Headings and lists
- Tables and code blocks
- Macros (panels, info boxes, code blocks)
- Images and links
- Advanced formatting
references/conversion_guide.md
Detailed conversion rules:
- Markdown to Wiki Markup mappings
- Edge cases and limitations
- Nested structure handling
- Special character escaping
references/mark_tool_guide.md
Comprehensive mark CLI guide:
- Installation and configuration
- Metadata header format
- CI/CD integration examples
- Best practices for Git-to-Confluence workflows
scripts/
Python utilities for automation:
convert_markdown_to_wiki.py- Format conversionrender_mermaid.py- Diagram renderinggenerate_mark_metadata.py- Metadata management
CLAUDE.md
Architecture and patterns guide for Claude Code instances, documenting:
- Core conversion patterns
- MCP tool usage workflows
- Format conversion reference
- Common task patterns
Common Workflows
Creating Pages from Markdown
"Create a Confluence page from this Markdown in the DEV space titled 'API Guide'"
"Convert this Markdown document with Mermaid diagrams to Confluence"
"Create a page under 'Documentation' parent with this content"
Searching Confluence
"Search Confluence for pages about authentication in the DEV space"
"Find all pages labeled 'api' created this month"
"Show me pages in DEV space modified in the last 7 days"
Format Conversion
"Convert this Wiki Markup to Markdown"
"Convert this Markdown to Confluence format"
"Show me how to write a table in Wiki Markup"
Diagram Rendering
"Render this Mermaid diagram and create a Confluence page"
"Extract all diagrams from this Markdown and upload to Confluence"
"Create a page with this flowchart diagram"
Git-to-Confluence Sync
"Add mark metadata to this Markdown file for syncing to DEV space"
"Help me sync this docs/ folder to Confluence using mark"
"Set up CI/CD to sync Markdown docs to Confluence"
Updating Pages
"Update the 'Getting Started' page in DEV space with this new content"
"Find and update the authentication guide with these changes"
"Add this section to the API documentation page"
Best Practices
1. Validate Space Keys
Always verify space keys before operations:
"What Confluence spaces are available?"
2. Use Proper Page Hierarchies
Organize content with parent-child relationships:
"Create this page under 'Documentation > API Guides' in DEV space"
3. Apply Consistent Labels
Use labels for organization and discovery:
"Create this page with labels: api, documentation, authentication"
4. Test Conversions on Samples
Verify format conversions before bulk operations:
"Convert this small section first to verify the formatting"
5. Keep Diagram Sources in Git
Always commit .mmd files alongside Markdown:
docs/
├── architecture.md
└── diagrams/
├── architecture-overview.mmd
└── data-flow.mmd
6. Use mark for Documentation-as-Code
Automate Confluence updates from Git:
"Set up mark CLI to sync this repository's docs to Confluence"
7. Add Version Comments
Track changes with meaningful version comments:
"Update this page with version comment: Updated API authentication flow"
Troubleshooting
"Space not found"
- Use
"What Confluence spaces are available?"to see available spaces - Check
CONFLUENCE_SPACES_FILTERenvironment variable in.mcp.json - Verify space key is exact (case-sensitive)
"Permission denied"
- Check Confluence permissions for your account
- Verify API token is valid and not expired
- Ensure you have edit permissions in the target space
Format conversion issues
- Review conversion guide for edge cases
- Test problematic sections separately
- Check for unsupported Markdown extensions
- Verify nested formatting is properly structured
Mermaid rendering fails
- Verify mermaid-cli is installed:
mmdc --version - Test diagram syntax at https://mermaid.live
- Check for syntax errors in diagram code
- Try SVG format if PNG fails
mark CLI sync issues
- Verify mark is installed:
mark --version - Check metadata headers are properly formatted
- Test with
--dry-runfirst - Ensure base_url includes
/wikisuffix - Verify API token matches the instance
Multiple Confluence instances
- Verify correct
.mcp.jsonis loaded for workspace/project - Check
CONFLUENCE_URLin environment configuration - Ensure API token matches the Confluence instance
- Use workspace isolation to prevent conflicts
Integration with Other Skills
This Confluence skill can work alongside other Claude Code skills:
JIRA Skill
Link documentation to JIRA issues:
"Create remote link from JIRA ticket ENG-123 to this Confluence page"
Project Documentation Skills
Maintain project-specific documentation:
"Create Confluence pages from the project's README and architecture docs"
Meeting Notes Skills
Convert meeting notes to documentation:
"Create Confluence page from these meeting notes in the TEAM space"
Advanced Usage
Custom CQL Queries
See SKILL.md for:
- Complex search patterns
- Date/time functions
- Label-based queries
- Creator/contributor filters
- Historical search capabilities
Batch Synchronization
See scripts/ for automation:
- Bulk page creation from directory structure
- Automated diagram rendering and upload
- CI/CD integration examples
- Git repository synchronization
Custom Conversion Rules
Extend conversion scripts for:
- Project-specific macros
- Custom Wiki Markup extensions
- Special formatting requirements
- Domain-specific patterns
CI/CD Integration Example
Automatically sync documentation to Confluence when docs change:
# .github/workflows/sync-confluence.yml
name: Sync to Confluence
on:
push:
paths:
- 'docs/**/*.md'
branches:
- main
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install mark
run: |
curl -LO https://github.com/kovetskiy/mark/releases/latest/download/mark
chmod +x mark
sudo mv mark /usr/local/bin/
- name: Install mermaid-cli
run: npm install -g @mermaid-js/mermaid-cli
- name: Sync to Confluence
env:
CONFLUENCE_USERNAME: ${{ secrets.CONFLUENCE_USERNAME }}
CONFLUENCE_PASSWORD: ${{ secrets.CONFLUENCE_API_TOKEN }}
CONFLUENCE_BASE_URL: ${{ secrets.CONFLUENCE_BASE_URL }}
run: |
for file in docs/**/*.md; do
# Render any Mermaid diagrams
python scripts/render_mermaid.py --extract-from-markdown "$file" --output-dir diagrams/
# Sync to Confluence
mark -u "$CONFLUENCE_USERNAME" \
-p "$CONFLUENCE_PASSWORD" \
--base-url "$CONFLUENCE_BASE_URL" \
-f "$file"
done
Updates and Maintenance
Updating the Skill
cd ~/.claude/skills/confluence # or workspace/project path
git pull origin main
Customizing for Your Team
You can customize this skill by:
- Modifying conversion scripts for project-specific patterns
- Adding custom CQL patterns to references
- Documenting team workflows in SKILL.md
- Creating custom templates for common page types
- Adding automation scripts for recurring tasks
Version Control
Keep skill customizations in version control:
cd ~/.claude/skills/confluence # or workspace path
git remote add team-fork https://github.com/your-org/confluence-skill-fork.git
git push team-fork main
This allows sharing customizations across your team.
Support
For issues or questions:
- Check SKILL.md for detailed workflows
- Review QUICK_REFERENCE.md for common commands
- Review references/ for Wiki Markup and conversion help
- Consult Atlassian MCP documentation
- Verify .mcp.json configuration
- Check Confluence permissions for your account
- Review CLAUDE.md for architecture patterns
Contributing
To improve this skill:
- Document new workflows in
SKILL.md - Add conversion patterns to
references/conversion_guide.md - Create example files in
examples/ - Share automation scripts in
scripts/ - Update best practices based on experience
- Add CQL patterns for common searches
License
This skill is designed for use with Claude Code and the Atlassian MCP server.