mk:confluence
Routing skill — recommends the correct mk:confluence-* leaf for any Confluence Cloud task. Pure router; no execution.
| Source | .claude/skills/confluence/SKILL.md |
| Owner | confluence |
| Runtime | claude-code |
| Risk | medium |
| Phase | on-demand |
What This Skill Does
mk:confluence is a pure routing layer. Its sole purpose is to identify the right mk:confluence-* leaf for the user's Confluence Cloud task and point at it. No execution.
Confluence execution lives in 5 thin leaf skills (each forks a dedicated agent in .claude/agents/) backed by the confluence-as CLI installed via npx mewkit setup. The hub itself never invokes the wrapper.
When to Use
- Triggers: "confluence", "wiki page", "spec page", ambiguous Confluence intent
- NOT for: Direct execution — forward to a specific
mk:confluence-{leaf}. If you already know the leaf, invoke it directly.
Routing Table
| User intent | Leaf skill |
|---|---|
| Get/create/update/delete a single page or blog post; copy/move/version | mk:confluence-page |
| Search pages with CQL; list spaces; export results | mk:confluence-search |
| Deep spec analysis: requirements, gaps, suggested stories | mk:confluence-spec-analyst |
| Bulk ops on 10+ pages (label, move, delete) — dry-run mandatory | mk:confluence-bulk |
| Comments, attachments, labels, watchers (collaboration surface) | mk:confluence-collaborate |
Disambiguation
- Numeric token (likely page ID) + verb → match verb to leaf
- Uppercase short token (likely space key) + read intent →
mk:confluence-search - CQL syntax (
=,AND,OR,currentUser()) →mk:confluence-search - 10+ items /
bulk/batch/masskeyword →mk:confluence-bulk - Spec analysis intent (
requirements,acceptance criteria,analyze the spec) →mk:confluence-spec-analyst - Labels:
mk:confluence-collaborateowns label CRUD. Routing "label page X" → collaborate, NOT page. - Comments / attachments / watchers: always
mk:confluence-collaborate, even if scoped to a single page. - Truly ambiguous → ask one clarifying question.
Setup
Install, authentication, the Cloud-only boundary, and troubleshooting live on Confluence Integration.
Mechanically: the wrapper exits 3 on non-*.atlassian.net URLs, and the hub does NOT auto-fallback to the Atlassian MCP transport - the leaf is invoked with it explicitly.
Architecture
The router recommends a leaf and never executes; each leaf runs context: fork against its matching agent in .claude/agents/.
mk:confluence (router, ≤80 lines)
├── shared resources (used by all 5 leaves):
│ ├── scripts/{confluence-as.sh, cql-sanitize.sh}
│ ├── scripts/{adf-to-md.sh, adf_to_md.py} macro-aware ADF→Markdown walker
│ ├── scripts/requirements.txt pip deps installed by mewkit setup
│ └── references/{install-and-auth, cli-idioms, safety-framework}.md
└── 5 leaf skills
├── confluence-page single-page CRUD + hierarchy + version
├── confluence-search CQL search + space list + saved filters + export
├── confluence-spec-analyst deep spec analysis (read-only at Confluence side)
├── confluence-bulk bulk ops on 10+ pages with mandatory dry-run
└── confluence-collaborate comments / attachments / labels / watchersHandoff
mk:planning-engineaccepts--spec <report-path>pointing at amk:confluence-spec-analystreport; user runs spec-analyst FIRST, then passes the path.mk:intakerecognizes Confluence URLs (*.atlassian.net/wiki/spaces/...) and raw page IDs as a 5th source; fetches page content directly via the wrapper, recommends spec-analyst for deeper analysis.- No write-back from
mk:cook— Confluence write paths are out of scope of the implementation pipeline.
Gotchas
mk:confluenceitself never executes; if you find yourself thinking aboutconfluence-ascommands inside this skill, you're in the wrong place — forward to a leaf.- Binary name is
confluence-as(NOTconfluencedespite some upstream README docs). The wrapper handles this; leaves call the wrapper. - ADF round-trip is lossy on macros (panel / expand / mention / decision / task-list / media). For read-side macro preservation,
mk:confluence-spec-analystuses the macro-awareadf-to-md.shwalker.
mk:story-sizer
Pre-ticket Fibonacci sizing for a paste-mode batch of user stories. Default writes an advisory Story Sizing Report. Opt-in --auto-create delegates ticket creation behind a single confirmation gate.
mk:confluence-page
Confluence page CRUD via the confluence-as wrapper. Forks the confluence-page agent.