Repository navigation
feat(skills): render Skill embeds through one SkillCard - #453
Conversation
Skills rendered through eight markups: SkillCard, SkillTable, the repository card, and hand-written rows on curator profiles, /me, collections, the reviewed list and the trending archive. Names, bylines and controls drifted apart. SkillCard now takes the context as props: a card, row or compact layout, how much byline the page already carries, one metric, and opt-in controls. A pure view builder resolves the facts once, so every layout shows the same ones. The design merges the takes Harlan picked from the lab: one identity unit, at most two lines of description, and a dashed run pill. Hearts and the SKILL.md icon are opt-in now.
🤖 MERGED
GitHub merged this pull request.
Review completed. No finding above 80/100. Selected findings run after merge and open separate pull requests. |
The trending and track boards, both home freshness feeds and the community top Skill still drew their own Skill markup. They now render SkillCard too. The board row becomes a thin adapter: its ranking reason fills the meta line and its posts fill a new aside slot. Board rows carry repo and name so the card can address the Skill, and SkillCard re-emits avatar errors so the boards still drop deleted GitHub accounts. Wide rows reserve the run pill's width, so rows with and without one line up. One star now reads "1 GitHub star". Search results keep their own rows: they are a keyboard picker, and a linked card inside a grid cell would break it.
|
🤖 Agent comment. Second commit, checked in a browser at 1440 and 390 wide. The trending board now renders
The live |
Rows without a run pill pushed their star count to the row's edge, so a board mixing single and multi Skill repositories showed two metric columns. Every wide row now keeps the control slot, empty or not.
There was a problem hiding this comment.
Harlan Agent Kit posted this automated review. AI open source policy.
Automated Review: READY.
The global override lost to SkillCard's scoped styles, so each entry kept its -0.5rem bleed and ran 8px past the ledger on both sides. The rule now lives in the page's scoped styles, which outrank the card's. The Review logged this at 15/100.
There was a problem hiding this comment.
Harlan Agent Kit posted this automated review. AI open source policy.
Automated Review: BLOCKED.
Resolves the a11y skip list: main added OgLines, and SkillCard now has its own axe tests in place of its skip.












🔗 Linked issue
None.
❓ Type of change
📚 Description
Skills rendered through twelve markups:
SkillCard,SkillTable, the repository card, the trending board row, and hand-written rows on curator profiles,/me, collections, the reviewed list, the trending archive, both home feeds and the community page. Names, bylines and controls drifted apart. One page showed/name, the next showed the display name, and some cards had no author at all.SkillCardnow renders every one of them. A page passes its context as props:layout:cardfor grid tiles and article embeds,rowfor ledgers and boards,compactfor indexes and feeds.byline:full, orrepoornonewhere the page header already names the owner or Repository.metric: one ofstars,likesorupdated, ornone.actions:runby default.likeandsourceare opt-in.rank,noteandtrending, plusmeta,footer,actionsandasideslots for facts only one page has, such as repository dependencies or the posts about a trending Skill.buildSkillCardViewresolves the facts once, so every layout shows the same ones.Each layout opens with the same identity unit: the avatar beside the mono name, over one byline. At most two lines of description follow. Then comes one line of facts, with a dashed
runpill that copies the full run command. Rows read in three zones (who, what, facts) and stack at full width under 40rem.Hearts and the SKILL.md icon are now opt-in. With few accounts so far, rows of zero hearts read as empty.
TrendingBoardItemis now a thin adapter. The reason a Skill ranked fills the meta line, and the post carousel sits in theasideslot under the Skill's words. Board rows gainedrepoandname, so the card can address the Skill.SkillCardemitsavatarError, which the boards already use to drop deleted GitHub accounts.Harlan compared four takes in a lab, one drawn by Fable, and picked parts of three for this merge.
/_playground/skill-cardsrenders every context in development and 404s in production. DESIGN.md records the decision and binds Skill embeds toSkillCard.Kept on purpose:
SkillSourceListuntil the 2026-11-11 SEO gate.