Skip to content

fix(interactions): remove wf:id from the legal target-value table - #47

Merged
jmartinez-wf merged 1 commit into
mainfrom
josh/interactions-skill-wf-id-contradiction
Sep 11, 2026
Merged

jmartinez-wf merged 1 commit into
mainfrom
josh/interactions-skill-wf-id-contradiction

Conversation

@jmartinez-wf

Copy link
Copy Markdown
Contributor

The problem

SKILL.md's target-value table listed wf:id as a legal target key:

| `wf:id` | element DOM id |

It is refused for every caller, in every context:

target type "wf:id" is not offered by the Designer (shouldShow: false in all
contexts). Use wf:selector, wf:class, or wf:inst instead.

The skill already knows this — references/envelope-and-targets.md carries a [REJECTED] wf:id in any context rule, and references/rejects-index.md lists the refusal fragment. So the skill contradicted itself, and the contradiction sat in the one place an agent is most likely to read: the table you scan to pick a target key.

The failure mode is quiet and total. There's no partial success — an agent that picks wf:id gets a rejection on a write it had no reason to doubt, and the artifact it would cross-check against says the opposite.

What's different now

The row is gone, replaced with an explicit statement of the rejection and the actual alternative (wf:selector with '#the-id'), plus the correct count: seven authorable target keys, not eight.

How this was found

Run 5 of the IX3 MCP exhaustive authoring dogfood, recorded as finding C1 and ranked the highest-priority skill fix. It cost a coverage cell: the run's own handoff also listed "Target types (8)" including wf:id, inherited from this table, so the error had already propagated into planning docs before it hit a write.

Scope note — why this PR is smaller than the finding

The same run found two more issues in this skill, and both live in generated files I deliberately did not touch:

  1. references/envelope-and-targets.md has the same wf:id row in its own value-shape table.
  2. references/gated-capabilities.md lists wf:variable, wf:rive and wf:animate-rive as flag-gated actions. They were ungated by webflow#120253 (merged 2026-09-09). On monorepo dev all three are now in DEFAULT_ON_ACTION_KEYS and FLAG_GATED_ACTION_KEYS is an empty set — no action type is flag-gated any more. The dogfood run exercised all three successfully, including every wf:variable value type end to end. An agent working from the skill alone would not attempt the three most capable action types on the surface.

Both files open with:

<!-- Published from the Webflow monorepo: packages/systems/ix3/schema/agent-pack/references/...
     Do not edit here. Edit the source and re-publish. -->

SKILL.md has no such header, so it is hand-maintained here and is fixed in this PR.

The agent-pack source is not yet on monorepo dev — it is in open PR webflow#117458. Those two fixes belong in that branch and then a re-publish, so I've left them out rather than editing generated output that the next publish would overwrite.

Validation

  • prettier --check on the changed file → clean
  • Rejection text quoted verbatim from a measured data_interactions_tool response against beta MCP
  • Gating claim verified against monorepo dev source, not just against the run's observations

QA Spec

  • SKILL.md's target-value table no longer lists wf:id
  • The replacement text names wf:selector with '#the-id' as the way to target by DOM id
  • No remaining place in SKILL.md implies wf:id is authorable
  • Consistency: SKILL.md now agrees with references/envelope-and-targets.md's [REJECTED] rule and references/rejects-index.md
  • Follow-up tracked: the two generated-file corrections land via the agent-pack source, not here

SKILL.md listed wf:id as a target key with value "element DOM id", while
references/envelope-and-targets.md says "[REJECTED] wf:id in any context"
and rejects-index.md lists its refusal. An agent reading the value table
authors a target that can never resolve.

Measured: target type "wf:id" is not offered by the Designer (shouldShow:
false in all contexts). There are seven authorable target keys, not eight.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jmartinez-wf jmartinez-wf self-assigned this Sep 11, 2026
@jmartinez-wf
jmartinez-wf marked this pull request as ready for review September 11, 2026 21:40
@jmartinez-wf
jmartinez-wf merged commit 487d053 into main Sep 11, 2026
5 checks passed
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