Skip to content

feat(instantsearch): add Vue and JS phase-2 stubs, bump to 1.1 (4/4)#25

Open
vascobettencourt wants to merge 2 commits into
feat/instantsearch-react-advancedfrom
feat/instantsearch-vue-js-stubs
Open

feat(instantsearch): add Vue and JS phase-2 stubs, bump to 1.1 (4/4)#25
vascobettencourt wants to merge 2 commits into
feat/instantsearch-react-advancedfrom
feat/instantsearch-vue-js-stubs

Conversation

@vascobettencourt
Copy link
Copy Markdown
Member

@vascobettencourt vascobettencourt commented May 18, 2026

What does this skill do?

Mirrors the React library-level reference structure to Vue and vanilla JS. Phase 2 deliberately keeps these as honest stubs: library-level rules + autocomplete only. Pattern-level coverage (search results page, custom widgets, middleware, SSR) for Vue/JS lands in a future phase if/when there's demand. Bumps skill version 1.0 → 1.1.

This is part 4 of 4. Stacks on #24 (which stacks on #23, which stacks on #22). Review #22, #23, and #24 first; this PR's diff now contains only its own changes.

What's in this PR

  • 8 new files under references/vue/technology-rules.md, anti-patterns.md, styling.md, glossary.md, source-of-truth.md, autocomplete/{features,styling,anti-patterns}.md.
  • 8 new files under references/js/ — same structure.
  • SKILL.md: fills Vue/JS column cells in the source-of-truth table, the autocomplete row of the patterns table, and the library-level references table. Replaces the "React only" coverage note. Bumps version to 1.1.
  • evals/evals.json: adds eval 11 (Vue autocomplete) and eval 12 (JS autocomplete) — both directly testing the recommendation flip Sarah called out: @algolia/autocomplete-js is the recommended path for Vue and JS, not an anti-pattern as it is on React.

Notable: the autocomplete story differs by library

For React, @algolia/autocomplete-js is an anti-pattern (React InstantSearch ships EXPERIMENTAL_Autocomplete). For Vue and vanilla JS, @algolia/autocomplete-js is the recommended path because no equivalent ships in vue-instantsearch / instantsearch.js. The Vue and JS autocomplete docs flip this honestly, and evals 11 and 12 enforce that the agent picks the right side of the flip per library.

Reviewer tip

Most files in the Vue and JS folders are parallel mirrors of each other (with framework-appropriate adjustments — kebab-case Vue components, <script setup> examples, vs. JS factory imports). Reading one Vue file plus its JS counterpart will let you trust the rest.

Checklist

  • python3 scripts/validate_skills.py . passes (31/31)
  • Skill description unchanged (still 602/1024)
  • evals/evals.json has 12 prompts after this PR (10 from earlier PRs, plus 11 Vue and 12 JS here)
  • Skill is self-contained — Vue/JS files only cross-reference React files within the same skill
  • Registered in marketplace.json — N/A, already registered
  • Goes in skills/

@sarahdayan
Copy link
Copy Markdown
Member

This stacks on #24 (not parallel to it) with three upstream commits in the branch. The "evals.json has 6 prompts" line is also stale, it's at 10 with #23 and #24 included. Worth correcting so we know what to look at.

Also, no evals for Vue/JS autocomplete. The recommendation flips from React (autocomplete-js is the right path here, an anti-pattern there) which is exactly the kind of behavior worth a quick eval.

Mirrors the React library-level structure (technology-rules,
anti-patterns, styling, glossary, source-of-truth) for vue-instantsearch
and instantsearch.js, plus autocomplete coverage. Phase 2 deliberately
does NOT mirror search-results-page / custom-widgets / middleware / SSR
yet; those land in a future phase if needed.

Note: the recommended autocomplete path differs from React. For Vue and
vanilla JS the maintained path is @algolia/autocomplete-js (which is an
anti-pattern in React because EXPERIMENTAL_Autocomplete exists). The
stubs flip the rule honestly per library.

Updates SKILL.md tables to fill the Vue and JS column cells and bumps
the skill version from 1.0 to 1.1.

Stacks on feat/instantsearch-source-of-truth.
@vascobettencourt vascobettencourt force-pushed the feat/instantsearch-source-of-truth branch from 8eb583d to 9b69b3d Compare May 20, 2026 21:34
@vascobettencourt vascobettencourt force-pushed the feat/instantsearch-vue-js-stubs branch from 9a675de to 2fad057 Compare May 20, 2026 21:34
Sarah's PR #25 review flagged the missing Vue/JS autocomplete coverage:
the recommendation flips from React (autocomplete-js is an anti-pattern)
to Vue/JS (autocomplete-js is the recommended path), and that inversion
deserves direct test coverage.

- Eval 11 (Vue 3): user asks for autocomplete on a vue-instantsearch
  project. Expects @algolia/autocomplete-js mounted from a Vue component
  (onMounted/onBeforeUnmount), NOT an <ais-search-box> or invented
  vue-instantsearch autocomplete widget. Asserts the agent does not
  treat autocomplete-js as an anti-pattern in this context.
- Eval 12 (vanilla JS): same intent for an instantsearch.js project.
  Expects @algolia/autocomplete-js, not the searchBox widget repurposed
  for autocomplete behavior.

Both evals also assert v5 client shape and the source-of-truth check
against live docs / installed types.
@vascobettencourt vascobettencourt changed the base branch from feat/instantsearch-source-of-truth to feat/instantsearch-react-advanced May 20, 2026 21:37
@vascobettencourt
Copy link
Copy Markdown
Member Author

vascobettencourt commented May 20, 2026

@sarahdayan addressed all three:

  1. Restacked on feat(instantsearch): add React custom widgets, middleware, SSR (3/4) #24 (was on feat(instantsearch): add Source-of-truth check workflow step (1/4) #22). Diff now shows only this PR's changes.
  2. Description fixed — stacking note + eval count (12, not 6).
  3. Vue + JS autocomplete evals added in e531a89 — eval 11 (Vue) and eval 12 (JS) test the flip you flagged: @algolia/autocomplete-js is the right path on Vue/JS, not an anti-pattern as on React.

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.

2 participants