Skip to content

ClickUp provider: content_edit_mode defaults to append instead of replace #3

@guachoxx

Description

@guachoxx

Bug Description

When calling clickup_update_document_page via the ClickUp MCP server without explicitly passing content_edit_mode, the updated content is appended to the existing page content instead of replacing it.

The MCP tool's schema documents the default as "replace", but the actual behavior is "append". This causes document pages to grow with duplicated/concatenated content after every update.

Impact

This is critical for the framework's distillation protocol: every CURRENT_STATUS, PLAN, or TECHNICAL_ANALYSIS update appends the full new content to the existing content, corrupting the document.

Conversely, when content_edit_mode: "replace" IS explicitly passed, the replace works correctly — but if only the new/changed section is sent (not the full document), the entire page is replaced with just that section, losing all other content.

Steps to Reproduce

  1. Create a ClickUp document page with some content
  2. Call clickup_update_document_page with new content but without passing content_edit_mode
  3. Read the page back — the new content is appended to the original instead of replacing it

Workaround

Always pass content_edit_mode: "replace" explicitly, and always send the complete page content (not just the changed section).

Proposed Fix

Update the following files in the framework:

1. claude-memory/providers/clickup/SETUP.md

Add a CRITICAL note in the "How Claude interacts with ClickUp" section:

> **CRITICAL — `content_edit_mode`**: When calling `clickup_update_document_page`, **ALWAYS pass `content_edit_mode: "replace"` explicitly**. The tool's documented default is "replace" but the actual ClickUp API behavior defaults to "append", concatenating new content to existing content instead of replacing it.

2. CONVENTIONS document (ClickUp-hosted or template)

Add a new section at the end:

## ClickUp-Specific Rules

### Document Update Mode (CRITICAL)

When updating ClickUp document pages via `clickup_update_document_page`, **ALWAYS pass `content_edit_mode: "replace"` explicitly**. The tool's documented default is "replace" but the actual behavior defaults to "append", which causes the updated content to be concatenated to the existing content instead of replacing it.

This applies to ALL page updates: CURRENT STATUS, TECHNICAL ANALYSIS, PLAN, CHANGELOG, etc.

Environment

  • ClickUp MCP server (via Claude Code MCP integration)
  • ClickUp API v3
  • Claude Code on Windows 11

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions