Skip to content

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

Open
vascobettencourt wants to merge 3 commits into
feat/instantsearch-source-of-truthfrom
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 3 commits into
feat/instantsearch-source-of-truthfrom
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 #22 (PR 1), parallel to #23 (PR 2) and #24 (PR 3). Review PR 1 first.

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.

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.

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.

Stacking note

Same as PR 2 and PR 3: includes PR 1's commit in the diff against main. Review only the second commit.

Checklist

  • python3 scripts/validate_skills.py . passes (31/31)
  • Skill description unchanged (still 602/1024)
  • evals/evals.json has 6 prompts (no new evals in this PR)
  • 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/

@vascobettencourt vascobettencourt self-assigned this May 18, 2026
vascobettencourt and others added 3 commits May 18, 2026 14:04
Adds the canonical widget tree (SearchBox, Configure, Hits, Pagination,
Stats, NoResultsBoundary), the refinements catalog (RefinementList,
HierarchicalMenu, RangeInput, ToggleRefinement, CurrentRefinements,
ClearRefinements), sort via SortBy with replicas, and multi-index
guidance. The pattern reference points reviewers at types and live docs
for prop-level details rather than baking them in. Adds evals 6 and 7
covering the full results page and a searchable refinement list with
active-filter chips.

Stacks on feat/instantsearch-source-of-truth.
…nces

Adds three library-level references that close the gaps the
Source-of-truth check on its own can't fully bridge:

- custom-widgets.md: when widget + classNames suffices vs when to reach
  for useConnector / useXxx, the renderState contract, common pitfalls
  (stale state, re-render storms, lost A11y).
- middleware.md: contract (subscribe / started / unsubscribe /
  onStateChange), legitimate uses, and what middleware should NOT be
  used for (URL sync, default refinements).
- ssr.md: App Router via InstantSearchNext (no extra helpers needed)
  vs Pages Router / non-Next React via getServerState +
  InstantSearchSSRProvider, with explicit guidance against mixing them.

Adds evals 8 (Pages Router SSR) and 9 (custom chip widget via
useRefinementList).

Stacks on feat/instantsearch-source-of-truth.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.
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