Skip to content

CIEL Lab MCP: Support update and retirement operations in Propose Bulk Edit #2792

Description

@filiperochalopes

User story

As a CIEL curator, I want MCP to propose updates and retirements of existing names and descriptions so that I can review and apply terminology changes conversationally instead of being limited to adding new resources.

Use case

propose_bulk_edit currently supports proposals that add data to concepts.

The workflow should support three distinct operation types:

  • INSERT — add new resources.
  • UPDATE — modify existing resources.
  • RETIRE — logically remove existing resources using OCL retirement.

A single proposal/table must contain only one operation type. Operations must never be mixed within the same Propose Bulk Edit table.

If a user request requires inserts, updates, and retirements, MCP should create separate proposals for each operation.

The same concept may therefore appear in multiple proposals when different resources or operations are involved.

MVP scope

  • Preserve the existing INSERT behavior.
  • Add UPDATE support for:
    • Names.
    • Descriptions.
  • Add RETIRE support for:
    • Names.
    • Descriptions.
  • Allow multiple concepts/resources in a proposal as long as every row represents the same operation type.
  • Clearly identify the operation represented by the proposal/table.

Update behavior

  • Retrieve and identify the existing resource being updated.
  • Present the proposed new value in the editable Propose Bulk Edit table.
  • Preserve the resource identity required to update the existing OCL resource rather than creating a new one.
  • Allow the curator to edit the LLM-generated proposal before applying it.

Retirement behavior

  • Treat removal requests as OCL logical retirement rather than physical deletion.
  • Identify the existing name or description that will be retired.
  • Include a required retirement reason for each proposed retirement.
  • Allow the LLM to generate the retirement reason from the user's request and conversation context.
  • Keep the generated reason editable by the curator before applying the proposal.
  • Do not execute retirement without a reason.

Operation separation

  • A proposal must be exclusively INSERT, UPDATE, or RETIRE.
  • If the user's request requires multiple operation types, generate separate Propose Bulk Edit proposals.
  • Never combine operation types into a single editable table.
  • Different proposals may reference the same concept when necessary.

Acceptance criteria

  • A curator can request an update to an existing name through MCP and receive an UPDATE proposal.
  • A curator can request an update to an existing description through MCP and receive an UPDATE proposal.
  • A curator can request retirement of an existing name or description and receive a RETIRE proposal.
  • Retirement proposals always contain an editable reason.
  • Applying an UPDATE modifies the existing resource rather than inserting a duplicate.
  • Applying a RETIRE marks the existing resource as retired according to OCL semantics.
  • A single proposal never contains mixed operation types.
  • A request requiring multiple operation types results in separate proposals/tables for each operation.
  • All proposed values and retirement reasons remain reviewable and editable by the curator before execution.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

signal/high-riskSignificant potential impact if incorrectsignal/well-specifiedClear requirements and acceptance criteriastage/triagedAI triage complete — scored and classifiedtype/featureNew or improved functionality

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions