Make recommended the default skill ranking#2437
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Codex review: needs maintainer review before merge. Reviewed June 1, 2026, 5:58 PM ET / 21:58 UTC. Summary Reproducibility: not applicable. this is a feature/default-ranking PR, not a bug report. Source comparison shows current main still defaults web browse/home to downloads/newest-oriented behavior while the branch adds Recommended. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land only after maintainers explicitly approve Recommended as the public default and the production schema/backfill rollout plan, while preserving the v1 API no-sort Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature/default-ranking PR, not a bug report. Source comparison shows current main still defaults web browse/home to downloads/newest-oriented behavior while the branch adds Recommended. Is this the best way to solve the issue? Unclear as a product decision: the implementation is narrow and well-covered for the chosen direction, but whether this is the best solution depends on maintainers accepting the compatibility and rollout impact. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against cb6ced7906f7. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
There was a problem hiding this comment.
Pull request overview
This PR makes “Recommended” (a composite popularity-based rank) the default public skill ranking across the Skills browse UI, the home feed, and the /api/v1/skills HTTP API, while preserving consistent behavior for search (“Relevance”) and for legacy/stale sort URLs.
Changes:
- Updates Skills browse and home feed to default to Recommended, including sort-option UX and sort-state normalization.
- Adds backend “default” ranking support via new digest indexes and server-side fallback logic to keep pagination cursors stable during backfill.
- Adjusts search popularity scoring to weight stars/installs more than downloads, and adds regression tests + docs updates.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/routes/skills/index.tsx | Updates sort options and removes the old browse-default redirect to allow Recommended to be the implicit default. |
| src/routes/skills/-useSkillsBrowseModel.ts | Normalizes sort/dir semantics for default vs relevance and omits sort in list requests when using implicit Recommended. |
| src/routes/skills/-params.ts | Introduces default sort key and updates mapping logic so default/relevance don’t map to a list sort parameter. |
| src/routes/index.tsx | Home feed now relies on backend default ranking instead of explicitly forcing downloads. |
| src/tests/skills-route-default-sort.test.ts | Updates route-default behavior expectations now that no redirect is used. |
| src/tests/skills-index.test.tsx | Adds regression coverage for default-sort behavior, stale sort/dir cleanup, and explicit browse/search sort transitions. |
| src/tests/home-route.test.tsx | Updates expectations for home feed queries to use Recommended by default (no explicit sort). |
| docs/http-api.md | Documents default/recommended sort behavior and updated popularity/relevance notes. |
| convex/skills.ts | Adds default-rank index support, default sort handling for list endpoints, highlighted sorting changes, and cursor/backfill compatibility logic. |
| convex/skills.listPublicPageV4.test.ts | Adds tests for default-rank indexes, direction normalization, cursor compatibility, and highlighted default sorting. |
| convex/search.ts | Revises popularity weighting/capping and tie-breaking to downweight downloads and emphasize stars/installs. |
| convex/search.test.ts | Updates and expands search scoring tests to reflect the new popularity model and tie-breaking. |
| convex/schema.ts | Adds new skillSearchDigest indexes for default ranking (active + nonsuspicious). |
| convex/maintenance.ts | Backfill now upserts digests (vs insert-only) to populate new rank stats/index fields. |
| convex/lib/skillSearchDigest.ts | Ensures digest rank stats are populated from canonical stats to support default ranking indexes. |
| convex/lib/skillSearchDigest.test.ts | Adds coverage for filling digest rank stats from legacy nested stats fields. |
| convex/httpApiV1/skillsV1.ts | Makes API v1 list sort default to default/recommended and supports recommended alias. |
| convex/httpApiV1.handlers.test.ts | Adds coverage asserting /api/v1/skills defaults to recommended and that aliases map correctly. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2bf9a52 to
753a27c
Compare
753a27c to
1164829
Compare
1164829 to
ad0ffec
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Summary
recommendedthe canonical public skill sort for the web browse and home feedsdefaultsort input as a compatibility aliasupdated, while adding explicitsort=recommended/sort=defaultsupportTests
Passed on
deb9eb73:git diff --checkbun run format:checkbun run lintVITE_CONVEX_URL=https://example.invalid bunx vitest run convex/skills.listPublicPageV4.test.ts convex/skills.publicListCursor.test.ts convex/httpApiV1.handlers.test.ts convex/search.test.ts convex/lib/skillSearchDigest.test.ts convex/functions.test.ts convex/maintenance.test.ts src/__tests__/skills-index.test.tsx src/__tests__/skills-route-default-sort.test.ts src/__tests__/home-route.test.tsx src/__tests__/openapi-contract.test.ts— 11 files, 399 testsbunx tsc -p packages/schema/tsconfig.json --noEmitbunx tsc -p packages/clawhub/tsconfig.json --noEmitbun run --cwd packages/clawhub-mod typecheckAttempted locally but still blocked by the existing public-corpus dependency issue:
bunx tsc --noEmitnow only fails becausescripts/public-corpus/dummyOwners.tscannot resolve@faker-js/fakerin this local install.Review
deb9eb73.deb9eb73.Prod-data preview
skillSearchDigestfrom prod deploymentwry-manatee-359using read-only CLI access./skillspage with the PR ranking formula./skills?prodSnapshot=1in Playwright; top rows were:@pskoett/Self-Improving Agent@ivangdavila/Self-Improving + Proactive Agent@spclaudehome/Skill Vetter@steipete/Gog@halthelobster/Proactive AgentNotes
CreateBackups).convex logs --failureis not supported by the installed Convex CLI./skillsmobile and desktop after confirming Recommended defaults and search switches to Relevance.