confluence-publishlisted
Install: claude install-skill dbhq-uk/atlassian-skill
# Publishing markdown to Confluence
Turns a markdown file in a repository into a Confluence page, and keeps it that way. The file is the master; Confluence is the rendering.
This skill **creates and updates only**. It has no delete verb anywhere - not for a page, not for an attachment. Removing something is a human job in the Confluence UI.
## Prerequisites
Credentials are shared with `jira` and `confluence`. If `~/.dbhq/atlassian/config.json` does not exist, run `${CLAUDE_SKILL_DIR}/../_shared/scripts/atlassian-setup.sh`.
## The binding
Each file carries its own page id in YAML frontmatter:
```yaml
---
confluence:
space: "98765"
parent: "1234567"
page_id: "8901234"
---
```
`page_id` is written back on the first publish. **Commit that change** - without it the next run creates a second page instead of updating the first.
Get the space id from `${CLAUDE_SKILL_DIR}/../confluence/scripts/confluence-search.sh spaces`. It is the numeric id, not the key.
## Publishing
```bash
${CLAUDE_SKILL_DIR}/scripts/publish.sh docs/payment-correlation.md --dry-run
${CLAUDE_SKILL_DIR}/scripts/publish.sh docs/payment-correlation.md
```
**Always dry-run first.** It converts the whole body and reports what would happen. A `--dry-run` against a file with no `page_id` yet is pure local conversion and needs no credentials at all. A `--dry-run` against a file that already carries a `page_id` also makes one read-only call to the live page, to preview the round-trip gate below before yo