---

name: confluence-comment
description: Manage comments on Confluence pages - add, get, update, delete, and resolve comments. ALWAYS use for feedback, discussions, and inline annotations.
triggers:
  - comment
  - comments
  - add comment
  - get comments
  - update comment
  - delete comment
  - inline comment
  - resolve comment
  - footer comment
  - reply
origin:
  type: upstream
upstream:
  repository: grandcamel/Confluence-Assistant-Skills
  path: skills/confluence-comment
  ref: 403eac8ad8a0812e6d41ed70cbc0fdf2ff4b7542
  license: MIT
trust:
  tier: reviewed
  reviewed_at: '2026-08-26'
  reviewed_by: ulises-jeremias
  reviewed_provenance: sha256:e960c1c7b10e05801c5d267a911792c06c24a322616c585d3a0af066ecc07bd5
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 Comment Skill

---

## ⚠️ PRIMARY USE CASE

**This skill manages comments on Confluence pages.** Use for:
- Adding footer comments (end of page)
- Adding inline comments (within content)
- Replying to existing comments
- Resolving/unresolving footer comments (inline comments are not supported by `resolve`)

---

## When to Use / When NOT to Use

| Use This Skill | Use Instead |
|----------------|-------------|
| Add/edit comments | - |
| Reply to comments | - |
| Resolve footer comments | - |
| Edit page content | `confluence-page` |
| Search comments | `confluence-search` |

---

## Risk Levels

| Operation | Risk | Notes |
|-----------|------|-------|
| List comments | - | Read-only |
| Add comment | - | Can be deleted |
| Update comment | ⚠️ | Overwrites original |
| Delete comment | ⚠️ | **No recovery** |

---

## Overview

This skill provides comprehensive comment management for Confluence pages, supporting both footer comments and inline comments. Use it to add feedback, manage discussions, and track comment resolution.

## CLI Commands

**Output format tip:** A global `-o/--output` flag placed before the subcommand (e.g. `confluence-as -o json comment list 12345`) sets the default output format for all subcommands; an explicit subcommand-level `--output` wins.

### confluence-as comment add

Add a footer comment to a Confluence page.

**Usage:**
```bash
confluence-as comment add PAGE_ID "Comment text"
confluence-as comment add PAGE_ID --file comment.txt
```

**Arguments:**
- `page_id` - Page ID to add comment to
- `body` - Comment body text (optional if using --file)

**Options:**
- `--file`, `-f` - Read comment body from file (alternative to body argument)
- `--output`, `-o` - Output format (text or json)

**Note:** Either `body` argument or `--file` option is required, but not both.

### confluence-as comment list

Retrieve footer comments on a Confluence page. Returns at most `--limit` comments (default: 25, max: 250) and silently truncates at that limit - pass a higher `--limit` on pages with many comments.

**Usage:**
```bash
confluence-as comment list PAGE_ID
confluence-as comment list PAGE_ID --limit 10
confluence-as comment list PAGE_ID --sort created
confluence-as comment list PAGE_ID --output json
```

**Arguments:**
- `page_id` - Page ID to get comments from

**Options:**
- `--limit`, `-l` - Maximum number of comments to retrieve (default: 25, max: 250); results beyond the limit are silently dropped
- `--sort`, `-s` - Sort order: created or -created (default: -created for newest first)
- `--output`, `-o` - Output format (text or json)

### confluence-as comment update

Update an existing comment's body.

**Usage:**
```bash
confluence-as comment update COMMENT_ID "Updated text"
confluence-as comment update COMMENT_ID --file updated.txt
```

**Arguments:**
- `comment_id` - Comment ID to update
- `body` - Updated comment body (or use --file)

**Options:**
- `--file`, `-f` - Read updated body from file
- `--output`, `-o` - Output format (text or json)

### confluence-as comment delete

Delete a comment from a Confluence page.

**Usage:**
```bash
confluence-as comment delete COMMENT_ID
confluence-as comment delete COMMENT_ID --force
```

**Arguments:**
- `comment_id` - Comment ID to delete

**Options:**
- `--force`, `-f` - Skip confirmation prompt

### confluence-as comment add-inline

Add an inline comment to specific text in a Confluence page.

**Usage:**
```bash
confluence-as comment add-inline PAGE_ID "selected text" "Comment about this text"
```

**Arguments:**
- `page_id` - Page ID to add inline comment to
- `selection` - Text selection to attach comment to
- `body` - Comment body text

**Options:**
- `--output`, `-o` - Output format (text or json)

**Note:** The text selection must match existing text in the page content.

### confluence-as comment resolve

Mark a **footer** comment as resolved or reopen it.

**Footer comments only:** this command calls the `/api/v2/footer-comments/{id}` endpoints exclusively, so passing an inline comment ID fails with 404 Not Found. Resolving inline comments is not supported by the CLI; use the Confluence UI instead.

**Usage:**
```bash
confluence-as comment resolve COMMENT_ID --resolve
confluence-as comment resolve COMMENT_ID --unresolve
```

**Arguments:**
- `comment_id` - Footer comment ID to resolve/unresolve (inline comment IDs return 404)

**Options:**
- `--resolve`, `-r` - Mark comment as resolved
- `--unresolve`, `-u` - Mark comment as unresolved/open
- `--output`, `-o` - Output format (text or json)

**Note:** One of --resolve or --unresolve is required; if both are given, the last one wins.

## Examples

### Natural Language Triggers

**Adding Comments:**
- "Add a comment to page 12345 saying 'Great work!'"
- "Comment on page 67890 with the content from feedback.txt"
- "Leave a comment on the API docs page"

**Getting Comments:**
- "Show me all comments on page 12345"
- "Get the comments from the release notes"
- "List comments on page 67890, newest first"

**Updating Comments:**
- "Update comment 999 to say 'Revised feedback'"
- "Edit comment 888 with the text from file.txt"
- "Change my comment on that page"

**Deleting Comments:**
- "Delete comment 777"
- "Remove comment 666 without confirmation"
- "Delete my comment from that page"

**Inline Comments:**
- "Add inline comment to page 12345 on the text 'important section' saying 'Needs clarification'"
- "Comment on specific text in the documentation"

**Resolving Comments:**
- "Resolve comment 555"
- "Mark comment 444 as resolved"
- "Reopen comment 333"
- "Unresolve comment 222"

## API Endpoints Used

This skill uses the Confluence v2 REST API:

- **Footer Comments:**
  - `POST /api/v2/footer-comments` - Add comment (pageId in request body)
  - `GET /api/v2/pages/{id}/footer-comments` - Get comments on a page
  - `GET /api/v2/footer-comments/{id}` - Get specific comment
  - `PUT /api/v2/footer-comments/{id}` - Update comment body or resolution status (used by `update` and `resolve`)
  - `DELETE /api/v2/footer-comments/{id}` - Delete comment

- **Inline Comments:**
  - `POST /api/v2/inline-comments` - Add inline comment (pageId in request body); this is the only inline-comment endpoint the CLI uses - resolving inline comments is not supported

## Error Handling

All commands include proper error handling for:
- **404 Not Found** - Page or comment doesn't exist
- **403 Forbidden** - No permission to add/edit/delete comments
- **409 Conflict** - Version mismatch on updates
- **400 Bad Request** - Invalid input (empty body, invalid selection)

## Notes

- Comments support HTML storage format for rich text
- Inline comments require exact text matches in page content
- Comment IDs are numeric strings (same validation as page IDs)
- Resolution status is tracked separately from comment body (resolve/unresolve applies to footer comments only)
- Deletion requires confirmation unless --force is used
