Skip to content

feat(tracks): rank track pages on the trending board - #441

Merged
harlan-zw merged 2 commits into
mainfrom
feat/track-boards
Oct 5, 2026
Merged

harlan-zw merged 2 commits into
mainfrom
feat/track-boards

Conversation

@harlan-zw

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

Related to #438 and #433

❓ Type of change

  • 📖 Documentation
  • 🐞 Bug fix
  • 👌 Enhancement
  • ✨ New feature
  • 🧹 Chore
  • ⚠️ Breaking change

📚 Description

Harlan asked for track pages to reuse /skills/trending and show the design Skills devs talk about, on every track. A track page led with three pinned Skills and a card grid, in an order nothing on the page explained.

Architecture: the track page reads the new talked route, the track route and the track list, then builds its sections with trackBoard. The talked route ranks posts through loadTrendingSkills with a members scope, and cluster-membership decides which Skills belong to the track. The trending page and the track page share the new board shell.

Each /skills/<slug> page now uses the trending shell and rows, in up to three sections. Each heading says what orders its rows:

  • "Design skills devs talked about this week": the track's Skills with posts in the window, scored as the trending board scores them. Each row shows its posts and its braille spark. The section leads only when at least five Skills qualify (MIN_TALKED_SKILLS). Measured in production on 2026-10-06, three of 14 tracks clear it over seven days (planning 7, design 6, context-engineering 5) and six clear it over 30 days. Below the minimum, a line says how many Skills devs talked about, and those Skills stay in the lists without posts.
  • "Hand-picked design skills": the track's pinned Skills in pin order, under the curator note.
  • "More design skills, ranked by GitHub stars": every other member.

How it works:

  • GET /api/clusters/:slug/talked?range=week|month ranks by posts alone, through a new members scope on loadTrendingSkills. The scope filters after the window loads, so a post that lists thirty Skills still counts as a thirtieth of a dev. Star surges never enter the section.
  • The trending board demotes the 20 most-starred repositories below every other row. The talked route skips that demotion, because it put a Skill one dev posted about above ponytail, which seven devs posted about.
  • findClusterCandidates admits a talked Skill through the track's category or pins, without the listing's rank caps. About three quarters of the Skills devs post about have no classifier category yet, so no track can show them.
  • GET /api/clusters/:slug items gain pinned and repoSkillCount, and its cache name moves to v5. The v1 tracks.get operation keeps the route order.
  • The sidebar holds the week and month switch, the weekly invitation, the install chip, then the track list. The month board canonicalises to the track URL. URLs, titles, meta descriptions and the indexability rule do not change, so the SEO experiment running until 11 November is unaffected.
  • BoardShell, BoardRangeSwitch and BoardRankedList move out of trending.vue, so both pages share one shell.

Copy: the trending star rows say "Ranked by GitHub stars" instead of "Popular on GitHub". The trending header says "GitHub stars rank the rest of the board." instead of "Popular skills fill the rest of the board." The track page's "outcome" strings now say "track". COPY.md records the board strings, and GLOSSARY.md names pinned Skills "hand-picked".

docs/adr/0010-social-mentions-on-track-pages.md admits social ordering on track pages under the ADR-0004 rules. VISION anti-scope 4 points to it.

Removed: the "Three skills to inspect" band, the card grid, the header stats, and the "Browse tracks" button, which the sidebar track list replaces.

Page question: which Skills fit this kind of work, and which do devs talk about now? Primary action: copy the run command. Owning concern: Loop 1. VISION anti-scope 4: PASS under ADR-0010. DESIGN: PASS; the rail spends one solid rose element, as on trending.

🤖 AI disclosure: Harlan Agent Kit modified this description. My AI open-source policy.

ADR-0004 allowed social-mention ordering on /skills/trending and the
weekly email only. Track pages now lead with the Skills devs talked
about, so the carve-out needs its own decision: posts only, every row
ships its posts, a five-Skill minimum, and every other section names
its order. COPY.md records the board strings, and GLOSSARY.md names
pinned Skills "hand-picked" in UI copy.
Track pages listed Skills in an order nothing on the page explained.
They now reuse the trending board: a section of the Skills devs talked
about in the window when at least five qualify, then hand-picked Skills
in pin order, then the rest ranked by GitHub stars. Each heading says
what orders its rows. URLs, titles and meta descriptions are unchanged.

The board shell, range switch and ranked list move out of the trending
page so both pages share them. The trending copy no longer says
"popular", which GLOSSARY.md bans.
@harlan-zw

Copy link
Copy Markdown
Collaborator Author

Agent check, since CI cannot show it: a local dev server read production D1 rows (read-only export: the last 31 days of posts, plus classified and pinned Skills), rendered headlessly at 1440 and 390 in both themes.

  • /skills/design has 6 talked Skills this week, so the talked section leads with posts and sparks.
  • /skills/diagrams has 3, under the minimum. The quiet line shows, and the board starts with the hand-picked section.
  • /skills/seo has none. Its board is the hand-picked section only.
  • Titles, meta descriptions and canonicals for all three match production.
  • axe-core on both pages found no violation from the board. The only finding is the header's existing trending mark.
Many mentions Few mentions No mentions
Design track at 1440, dark Diagrams track at 1440, light SEO track at 1440, dark
Design track at 390, light Diagrams track at 390, dark SEO track at 390, light

@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Oct 5, 2026
@harlan-github-agent

harlan-github-agent Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

🤖 MERGED

Harlan Agent Kit posted this automated review. It is not Harlan's personal review or approval. AI open source policy. Last updated: 2026-10-05 17:46 UTC.

GitHub merged this pull request.

  • Logged (35/100): The PR's visual evidence is inaccessible to this review, so the screenshot-backed UI verification cannot be confirmed from the pull request itself. View code
    • Ask an agent to verify and fix this finding

Review completed. No finding above 80/100.

Selected findings run after merge and open separate pull requests.

@harlan-zw
harlan-zw merged commit 14613f3 into main Oct 5, 2026
7 checks passed
@harlan-github-agent harlan-github-agent Bot removed harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Oct 5, 2026
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