fix(interactions): remove wf:id from the legal target-value table - #47
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The problem
SKILL.md's target-value table listedwf:idas a legal target key:It is refused for every caller, in every context:
The skill already knows this —
references/envelope-and-targets.mdcarries a[REJECTED] wf:id in any contextrule, andreferences/rejects-index.mdlists 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:idgets 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:selectorwith'#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:
references/envelope-and-targets.mdhas the samewf:idrow in its own value-shape table.references/gated-capabilities.mdlistswf:variable,wf:riveandwf:animate-riveas flag-gated actions. They were ungated by webflow#120253 (merged 2026-09-09). On monorepodevall three are now inDEFAULT_ON_ACTION_KEYSandFLAG_GATED_ACTION_KEYSis an empty set — no action type is flag-gated any more. The dogfood run exercised all three successfully, including everywf:variablevalue 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:
SKILL.mdhas 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 --checkon the changed file → cleandata_interactions_toolresponse against beta MCPdevsource, not just against the run's observationsQA Spec
SKILL.md's target-value table no longer listswf:idwf:selectorwith'#the-id'as the way to target by DOM idSKILL.mdimplieswf:idis authorableSKILL.mdnow agrees withreferences/envelope-and-targets.md's[REJECTED]rule andreferences/rejects-index.md