Problem
skills-lint.yml runs lint_skill_refs.py, which checks tool names in skills against the MCP registry only. A skill can therefore name an operation that the SDK does not have. See the name-parity issue in this milestone.
A review of the skills against the SDK also found content errors. Some of them are wrong on MCP too (all lines refer to origin/dev adf67c3a):
skills/observability/pipefy-observability/SKILL.md:56 uses page=1. The real parameters are first and after.
skills/observability/pipefy-observability/SKILL.md:66 uses agent_id=. The real parameters are uuid / agent_uuid and active.
skills/process-intelligence/pipefy-process-intelligence/SKILL.md:89 shows create_automation ... trigger_event=... actions=[...]. The real signature takes trigger_id and action_id.
skills/process-intelligence/pipefy-process-intelligence/SKILL.md:98 shows create_field_condition ... when/fields. The real signature takes phase_id, condition and actions.
skills/process-design/pipefy-process-design/SKILL.md:41 uses name="". The parameter is pipe_name.
skills/automations/pipefy-automations/SKILL.md:69,77: the example uses the same field id as prompt input and output. The validator rejects this (pipefy_sdk/ai_preflight.py:89-94). Line 77 also uses trigger_event= where the parameter is event_id.
Proposal
- Extend
lint_skill_refs.py so that a tool name in a skill body must resolve to a PipefyClient method, an MCP tool, or both. Once the surface-neutral issue lands, names in references/mcp.md must resolve to MCP tools only.
- Fix the lines above.
Problem
skills-lint.ymlrunslint_skill_refs.py, which checks tool names in skills against the MCP registry only. A skill can therefore name an operation that the SDK does not have. See the name-parity issue in this milestone.A review of the skills against the SDK also found content errors. Some of them are wrong on MCP too (all lines refer to
origin/devadf67c3a):skills/observability/pipefy-observability/SKILL.md:56usespage=1. The real parameters arefirstandafter.skills/observability/pipefy-observability/SKILL.md:66usesagent_id=. The real parameters areuuid/agent_uuidandactive.skills/process-intelligence/pipefy-process-intelligence/SKILL.md:89showscreate_automation ... trigger_event=... actions=[...]. The real signature takestrigger_idandaction_id.skills/process-intelligence/pipefy-process-intelligence/SKILL.md:98showscreate_field_condition ... when/fields. The real signature takesphase_id,conditionandactions.skills/process-design/pipefy-process-design/SKILL.md:41usesname="". The parameter ispipe_name.skills/automations/pipefy-automations/SKILL.md:69,77: the example uses the same field id as prompt input and output. The validator rejects this (pipefy_sdk/ai_preflight.py:89-94). Line 77 also usestrigger_event=where the parameter isevent_id.Proposal
lint_skill_refs.pyso that a tool name in a skill body must resolve to aPipefyClientmethod, an MCP tool, or both. Once the surface-neutral issue lands, names inreferences/mcp.mdmust resolve to MCP tools only.