Skip to content

feat: add PipefyClient methods for skill tool names - #706

Open
adriannoes wants to merge 5 commits into
devfrom
rc-dev/feat/696-skill-client-name-parity
Open

adriannoes wants to merge 5 commits into
devfrom
rc-dev/feat/696-skill-client-name-parity

Conversation

@adriannoes

@adriannoes adriannoes commented Sep 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

Skills cite MCP tool names that PipefyClient does not have. An agent that builds its tools from the client cannot call those operations.

This PR:

  • Adds five client methods with the MCP names and parameters:
    • get_ai_automation
    • get_ai_automations
    • delete_ai_automation
    • remove_member_from_pipe
    • fill_card_phase_fields
  • Moves the AI-list filter, the member-removal check, and the editable-field filter into the SDK.
  • Makes MCP and CLI call those methods.
    • MCP still elicits on fill_card_phase_fields when a form can be shown.

For the two projection tools:

  • Skills cite get_pipe and get_pipe_reports instead of get_labels and get_pipe_report.
  • MCP keeps the old names as aliases.
  • CLI label list and report-pipe get keep local projection.

Intentional behavior changes:

  • MCP fill with skip_elicitation (or no back channel) no longer writes when the phase has no editable fields.
  • CLI member remove reads members back and returns warning.

Test plan

  • Focused pytest after rebase onto dev (includes feat(sdk): create_ai_agent writes behaviors, and agent inputs prepare them #704): 298 passed
    • One pre-existing failure: Rich header truncation in test_automation_list_human_table_omits_nested_columns
  • uv run pytest -m "not integration"
  • uv run ruff check . && uv run ruff format --check .
  • Manual smoke (if applicable): callable via Cursor MCP
    • Live CLI check against a test org was not run in this session

Docs / skills

  • docs/parity.md updated when MCP ↔ CLI coverage changed
  • Affected skills/ updated in this PR (or a paired PR)
  • No docs/skills update needed

Also updated:

  • docs/sdk/README.md
  • docs/mcp/tools/pipes-and-cards.md
  • CHANGELOG.md

Legal / contributions

  • Commits include DCO sign-off (git commit -s)
  • Regulated-domain skills include COMPLIANCE.md when applicable

Closes #696

SDK agents can call the AI automation family, verified member removal, and phase fill without a separate MCP-only path. The AI filter, the removal check, and the editable-field filter live on the client.

Signed-off-by: Adrianno Esnarriaga <esadrianno@gmail.com>
…fill

The tools keep the confirm token and elicitation. Skip and no-back-channel fills delegate before a second phase read, and a phase with nothing editable does not write.

Signed-off-by: Adrianno Esnarriaga <esadrianno@gmail.com>
…card fill

member remove now reads members back and returns warning. card fill uses the same no-write rule as the client instead of a local short-circuit.

Signed-off-by: Adrianno Esnarriaga <esadrianno@gmail.com>
…eport

Those two MCP names are projections. SDK callers use the methods that already exist, and the MCP aliases stay.

Signed-off-by: Adrianno Esnarriaga <esadrianno@gmail.com>
…ntracts

Parity, the SDK readme, and the changelog describe which names exist on the client and when a phase fill skips the write.

Signed-off-by: Adrianno Esnarriaga <esadrianno@gmail.com>
@adriannoes adriannoes self-assigned this Sep 23, 2026
@adriannoes adriannoes added the enhancement New capability or intentional behavior change (not a bugfix) label Sep 23, 2026
@adriannoes
adriannoes requested a review from mocha06 September 23, 2026 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New capability or intentional behavior change (not a bugfix)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant