From atlassian-suite
This skill should be used when the user asks to "edit a section of a confluence page", "append to confluence page", "replace text on confluence", "update one paragraph on confluence", "fix typo on confluence page", "insert section after heading", "remove section from page", or runs `/atlassian-suite:confluence-edit`. Performs SURGICAL edits that preserve all other content (images, macros, charts). Always preferred over full-page rewrites unless replacing the entire page.
npx claudepluginhub acendas/acendas-marketplace --plugin atlassian-suiteThis skill is limited to using the following tools:
Surgical Confluence page edits that preserve everything not touched — images, macros, charts, mentions, structured macros all survive.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Surgical Confluence page edits that preserve everything not touched — images, macros, charts, mentions, structured macros all survive.
confluence_update_page requires the full body. Round-tripping that body through Markdown silently drops macros, breaks <ac:image> references, and mangles charts. This skill uses storage-format mutation tools that work on the live page text and only change what's targeted.
$1 = Page id or title.
$2 = Operation: append | prepend | replace-section | insert-after | replace-text | remove-section.
$3+ = Operation-specific args.
Resolve the page id. Numeric → use directly; title → confluence_search with the page title (ask for space if needed). For URLs, parse out the id.
For any op that targets a heading, peek at the current page (confluence_get_page with representation=storage, just enough to confirm the heading exists at the level the user thinks). This avoids the "heading not found" error after the user has already typed content.
Compose content. Confluence storage format is XHTML-ish. Common building blocks:
<p>Text</p><h2>Section Title</h2><ul><li>item</li></ul> or <ol>...</ol><ac:structured-macro ac:name="code"><ac:parameter ac:name="language">python</ac:parameter><ac:plain-text-body><![CDATA[print("hi")]]></ac:plain-text-body></ac:structured-macro><ac:structured-macro ac:name="info"><ac:rich-text-body><p>Note</p></ac:rich-text-body></ac:structured-macro>confluence_render_image_macro to get the XML.Confirm — show the user the content snippet and the location. For replace-text, show the regex and a sample of what it will hit. For remove-section, name the section explicitly.
Apply the targeted op:
confluence_append_to_page with content_storage.confluence_prepend_to_page with content_storage.confluence_replace_section with heading_level, heading_text, new_content_storage. The heading line is preserved; only the body under it (until next same-or-higher heading) is replaced.confluence_insert_after_heading with heading_level, heading_text, content_storage.confluence_replace_text with pattern, flags, replacement. Always set max_replacements (default 10) as a safety guard. Errors out cleanly if zero matches.confluence_remove_section with heading_level, heading_text. Heading + body until next same-or-higher heading are deleted.Embed an image inline (composite flow):
confluence_upload_attachment with page_id + file_path.confluence_render_image_macro with filename (and optional width/align).storage_xml as the content_storage for confluence_insert_after_heading or confluence_append_to_page.replace-section once instead of multiple appends.replace-text operates on raw storage XML — careful with regex that crosses tag boundaries./atlassian-suite:confluence-page action rewrite.