Skip to content

fix(find): refuse a platform that is really an intent (v2.8.1) - #212

Merged
paulkr merged 1 commit into
mainfrom
feat/find-misaligned-pairs
Oct 15, 2026
Merged

paulkr merged 1 commit into
mainfrom
feat/find-misaligned-pairs

Conversation

@paulkr

@paulkr paulkr commented Oct 15, 2026

Copy link
Copy Markdown
Member

Why

one actions find takes <platform> "<intent>" pairs as a flat argument list. When an agent gives one platform for several intents (find stripe "list charges" "list refunds" "create a refund"), every pair after the first slips by one, and the intents land in the platform slot.

The Task Requests dashboard shows these over the last 30 days, all from the CLI: platforms like "list charges and payment intents", "get worksheet used range" and "create campaign budget". Each was sent to core, searched, and answered "nothing fit", so the agent learned nothing about what went wrong.

What

  • misplacedIntent(requests) (src/lib/find.ts): platform names are single kebab-case words, so a "platform" containing whitespace is an intent that slipped. find() refuses it with a FindArgsError before anything reaches core:

    "list refunds" looks like an intent, not a platform: the pairs are out of step. Name the platform before every intent, e.g. one actions find stripe "list charges" stripe "list refunds".

  • The odd-argument-count error (the other shape of the same mistake) now says to name the platform before every intent, with the same example.
  • Docs: SKILL.md, one guide and the README say to repeat the platform before every intent, even when they share one.
  • Version 2.8.1: package.json and the lockfile's two version fields, hand-edited per CLAUDE.md.

The remote MCP and the local MCP package take { platform, intent } objects, so pairs can't slip there. A wrong platform name on any surface is handled in core (pica-v2 platform resolution, in progress).

Test plan

  • tsc --noEmit, npm run build
  • New tests:
    • a slipped pair is refused, naming the intent and the fix, and core is never asked;
    • misplacedIntent flags only platforms with whitespace (google-calendar and gmail pass).
  • Full suite: 671 pass. The 6 failures are the pre-existing resolveConfig macOS tmpdir assertions, the same on main.

🤖 Generated with Claude Code

… slip (v2.8.1)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@paulkr
paulkr merged commit 60b4a2b into main Oct 15, 2026
7 checks passed
@paulkr
paulkr deleted the feat/find-misaligned-pairs branch October 15, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant