confluence-page · git:20260901.5d17d6a · 2026-09-01 · sha256 117b345aaa613256
confluence-page git:20260901.5d17d6aA
Immutable. This exact content is served forever at /api/v1/blob/117b345aaa613256.
--- name: confluence-page description: Manage Confluence pages and blog posts - create, read, update, delete, copy, move, and version control. ALWAYS use when user wants to work with page content, create pages, update pages, or manage page versions. triggers: - create page - get page - read page - update page - edit page - delete page - remove page - blog post - blogpost - create blog - copy page - duplicate page - move page - relocate page - page version - version history - restore version - revert page origin: type: upstream upstream: repository: grandcamel/Confluence-Assistant-Skills path: skills/confluence-page ref: 403eac8ad8a0812e6d41ed70cbc0fdf2ff4b7542 license: MIT trust: tier: reviewed reviewed_at: '2026-08-26' reviewed_by: ulises-jeremias reviewed_provenance: sha256:8788b5961dcd6f1d1e9a08470b707037b74739db5fe3371776c1d8a2c7603fb2 maintenance: status: active last_checked: '2026-08-26' distribution: mode: vendored redistribution_allowed: true attribution_file: LICENSE security: scripts: false shell: false network: true mcp: false hooks: false --- # Confluence Page Skill Manage Confluence pages and blog posts through natural language commands. --- ## ⚠️ PRIMARY USE CASE **This is the core skill for all page and blog post operations.** Use this skill whenever you need to: - Create, read, update, or delete pages - Create or manage blog posts - Copy or move pages between spaces - Access or restore version history --- ## When to Use This Skill | Trigger | Example | |---------|---------| | Page CRUD | "Create a page", "Get page 12345", "Update the page", "Delete this page" | | Blog posts | "Create a blog post", "Get blog 67890" | | Copy/Move | "Copy page to ARCHIVE", "Move page under parent 12345" | | Versions | "Show version history", "Restore to version 5" | | Content from files | "Create page from markdown file", "Update page from content.md" | --- ## When NOT to Use This Skill | Operation | Use Instead | |-----------|-------------| | Search for pages | `confluence-search` | | Add comments to pages | `confluence-comment` | | Upload attachments | `confluence-attachment` | | Add/remove labels | `confluence-label` | | Set page restrictions | `confluence-permission` | | View page analytics | `confluence-analytics` | | Watch/unwatch pages | `confluence-watch` | | Navigate page hierarchy | `confluence-hierarchy` | --- ## Risk Levels | Operation | Risk | Notes | |-----------|------|-------| | Get page | - | Read-only | | Create page | - | Easily deletable | | Update page | ⚠️ | Creates version history, reversible | | Copy page | - | Creates new page | | Move page | ⚠️ | Can be moved back | | Delete page | ⚠️⚠️ | Goes to trash, recoverable for 30 days | | Permanent delete | ⚠️⚠️⚠️ | **IRREVERSIBLE** | --- ## Overview This skill handles all CRUD operations for Confluence pages and blog posts, including: - Creating new pages and blog posts - Reading page content and metadata - Updating page content, title, and status - Deleting pages (trash or permanent) - Copying and moving pages - Version history and restoration ## CLI Commands **Output format tip:** A global `-o/--output` flag placed before the subcommand (e.g. `confluence-as -o json page get 12345`) sets the default output format for all subcommands; an explicit subcommand-level `--output` wins. ### confluence-as page create Create a new Confluence page. **Usage:** ```bash # Create a simple page confluence-as page create --space DOCS --title "My New Page" --body "Page content here" # Create with parent page confluence-as page create --space DOCS --title "Child Page" --parent 12345 --body "Content" # Create from Markdown file confluence-as page create --space DOCS --title "From Markdown" --file content.md # Create as draft confluence-as page create --space DOCS --title "Draft Page" --body "WIP" --status draft ``` **Arguments:** - `--space, -s` - Space key (required) - `--title, -t` - Page title (required) - `--body, -b` - Page body content as storage-format XHTML (or plain text). Markdown passed via `--body` is NOT converted and renders as literal text; use `--file` with a `.md` file for Markdown. - `--file, -f` - Read body from file (files with a `.md`/`.markdown` extension are converted from Markdown) - `--parent, -p` - Parent page ID - `--status` - Page status: current (default) or draft - `--output, -o` - Output format: text or json ### confluence-as page get Retrieve a page's content and metadata. **Usage:** ```bash # Get by page ID confluence-as page get 12345 # Get with full body content confluence-as page get 12345 --body # Get specific body format confluence-as page get 12345 --body --format markdown # JSON output confluence-as page get 12345 --output json ``` **Arguments:** - `page_id` - Page ID (required) - `--body` - Include body content - `--format` - Body format: storage (default), view, or markdown - `--output, -o` - Output format: text or json ### confluence-as page update Update an existing page. **Usage:** ```bash # Update title confluence-as page update 12345 --title "New Title" # Update body confluence-as page update 12345 --body "New content" # Update from file confluence-as page update 12345 --file updated-content.md # Update with version message confluence-as page update 12345 --body "Updated" --message "Fixed typos" # Change status confluence-as page update 12345 --status draft ``` **Arguments:** - `page_id` - Page ID (required) - `--title, -t` - New title - `--body, -b` - New body content (storage-format XHTML or plain text; Markdown is not converted - use `--file` with a `.md` file) - `--file, -f` - Read body from file (`.md`/`.markdown` files are converted from Markdown) - `--message, -m` - Version message - `--status` - New status: current or draft - `--output, -o` - Output format ### confluence-as page delete Delete a page (move to trash or permanent delete). **Usage:** ```bash # Move to trash (default) confluence-as page delete 12345 # Permanent delete confluence-as page delete 12345 --permanent # Force without confirmation confluence-as page delete 12345 --force ``` **Arguments:** - `page_id` - Page ID (required) - `--permanent` - Permanently delete (cannot be recovered) - `--force, -f` - Skip confirmation prompt ### confluence-as page blog create Create a new blog post. **Usage:** ```bash confluence-as page blog create --space BLOG --title "My Blog Post" --body "Blog content" # From Markdown confluence-as page blog create --space BLOG --title "From MD" --file post.md ``` **Arguments:** - `--space, -s` - Space key (required) - `--title, -t` - Blog post title (required) - `--body, -b` - Blog post content (storage-format XHTML or plain text; Markdown is not converted - use `--file` with a `.md` file) - `--file, -f` - Read body from file (`.md`/`.markdown` files are converted from Markdown) - `--status` - Blog post status: current or draft - `--output, -o` - Output format ### confluence-as page blog get Retrieve a blog post. **Usage:** ```bash confluence-as page blog get 67890 --body ``` **Arguments:** - `blogpost_id` - Blog post ID (required) - `--body` - Include body content - `--format` - Body format - `--output, -o` - Output format ### confluence-as page copy Copy a page to a new location. **Usage:** ```bash # Copy to same space confluence-as page copy 12345 --title "Page Copy" # Copy to different space confluence-as page copy 12345 --title "Page Copy" --space NEWSPACE # Copy with children confluence-as page copy 12345 --title "Page Copy" --include-children ``` **Arguments:** - `page_id` - Source page ID (required) - `--title, -t` - New page title (default: "Copy of [original]") - `--space, -s` - Target space key - `--parent, -p` - Target parent page ID - `--include-children` - Copy child pages recursively - `--output, -o` - Output format ### confluence-as page move Move a page to a new location. **Usage:** ```bash # Move to new parent confluence-as page move 12345 --parent 67890 # Move to different space confluence-as page move 12345 --space NEWSPACE # Move to space root confluence-as page move 12345 --space NEWSPACE --root ``` **Arguments:** - `page_id` - Page ID to move (required) - `--space, -s` - Target space key - `--parent, -p` - Target parent page ID - `--root` - Move to space root (no parent) - `--output, -o` - Output format ### confluence-as page versions Get version history for a page. **Usage:** ```bash # List all versions confluence-as page versions 12345 # Limit results confluence-as page versions 12345 --limit 10 # Show version details confluence-as page versions 12345 --detailed ``` **Arguments:** - `page_id` - Page ID (required) - `--limit, -l` - Maximum versions to return (default: 25) - `--detailed` - Show full version details - `--output, -o` - Output format ### confluence-as page restore Restore a page to a previous version. **Usage:** ```bash # Restore to version 5 confluence-as page restore 12345 --version 5 # With version message confluence-as page restore 12345 --version 5 --message "Restoring to known good state" ``` **Arguments:** - `page_id` - Page ID (required) - `--version, -v` - Version number to restore (required) - `--message, -m` - Version message for the restoration ## Examples ### Natural Language Triggers - "Create a new page called 'Meeting Notes' in the DOCS space" - "Get the content of page 12345" - "Update page 12345 with this content: [content]" - "Delete the page with ID 12345" - "Create a blog post titled 'Sprint Review' in TEAM space" - "Copy page 12345 to the ARCHIVE space" - "Move page 12345 under parent page 67890" - "Show me the version history for page 12345" - "Restore page 12345 to version 3" ### Common Workflows **Create a page from natural language:** ``` User: Create a page called "API Documentation" in DOCS space with content explaining our REST API ``` --- ## Common Pitfalls ### 1. Page ID vs Page Title - **Problem**: Trying to use page title when page ID is required - **Solution**: Use `confluence-as search cql "title = 'Page Name'"` to find the page ID first ### 2. Version Conflicts - **Problem**: Update fails due to concurrent edits (409 Conflict) - **Solution**: Get the latest version, merge changes, retry update ### 3. Missing Parent Page - **Problem**: Creating a child page with invalid parent ID - **Solution**: Verify parent exists with `confluence-as page get PARENT_ID` ### 4. Content Format Mismatch - **Problem**: Body content not rendering correctly - **Solution**: Use `--file` with Markdown, or ensure proper storage format (XHTML) ### 5. Space Key Format - **Problem**: Space key not found or rejected - **Solution**: Keys must start with a letter and contain only letters, numbers, and underscores; the CLI uppercases lowercase input automatically (`docs` becomes `DOCS`) ### 6. Permanent Delete Recovery - **Problem**: Accidentally used `--permanent` flag - **Solution**: **No recovery possible** - always use trash (default) first ### 7. Blog Post Update/Delete - **Problem**: Trying to update or delete a blog post using page commands - **Solution**: Blog posts currently only support `create` and `get` operations via CLI. Update/delete must be done via Confluence UI. --- ## Error Handling | Error | Cause | Resolution | |-------|-------|------------| | **404 Not Found** | Page ID doesn't exist or was deleted | Verify page ID, check trash | | **403 Forbidden** | No permission to access/modify page | Request space access, check restrictions | | **409 Conflict** | Concurrent edit detected | Refresh page, merge changes, retry | | **400 Bad Request** | Invalid content format or parameters | Check body format, verify arguments | | **413 Content Too Large** | Page body exceeds size limit | Split content across multiple pages | **Note:** Confluence reports a missing create-page permission as HTTP 404. `confluence-as page create` detects this case and reports it as a permission error instead of "not found". ### Recovery from Errors **Deleted page recovery:** ```bash # Pages go to trash by default (recoverable for 30 days) # Use Confluence UI: Space Settings > Content Tools > Trash > Restore ``` **Version recovery:** ```bash # Check version history confluence-as page versions 12345 # Restore previous version confluence-as page restore 12345 --version 5 ``` **Permission issues:** ```bash # Check page restrictions confluence-as permission page get 12345 # Check space permissions confluence-as permission space get SPACE_KEY ```