Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4747788
feat(registry): add file explorer and context cost to Skill pages
harlan-zw Sep 30, 2026
7fbfa75
fix(registry): keep the context cost cells on one line at 390px
harlan-zw Sep 30, 2026
abc9775
fix(registry): wrap Markdown source lines in the Skill viewer
harlan-zw Sep 30, 2026
64ffc6b
feat(registry): show folder file counts and reveal the viewer on open
harlan-zw Sep 30, 2026
f3f4863
fix(registry): make the Skill explorer work by keyboard and touch
harlan-zw Sep 30, 2026
fd0136e
fix(registry): open LICENSE from its chip and keep file names whole
harlan-zw Sep 30, 2026
b69f6a8
feat(registry): give the Skill page the full desktop width
harlan-zw Sep 30, 2026
a0c2b31
fix(registry): keep the Skill header in its 1024px column
harlan-zw Sep 30, 2026
7751684
feat(registry): show context cost beside the open file
harlan-zw Sep 30, 2026
d9df3b6
feat(registry): stack run and install in the rail, folders first
harlan-zw Sep 30, 2026
7c4988f
feat(registry): lead the rail with a copy prompt button
harlan-zw Sep 30, 2026
32fee85
feat(registry): say run lasts one session, with a smaller copy button
harlan-zw Sep 30, 2026
5a2ba12
feat(registry): history under the files, a legible official chip
harlan-zw Sep 30, 2026
6e0b6e5
Merge remote-tracking branch 'origin/main' into proto/skill-explorer
harlan-zw Sep 30, 2026
3802818
feat(registry): install a Skill into Claude or ChatGPT from a ZIP
harlan-zw Sep 30, 2026
3034c85
feat(registry): open deep links in the Skill page viewer
harlan-zw Sep 30, 2026
c82470a
Merge remote-tracking branch 'origin/main' into proto/skill-explorer
harlan-zw Sep 30, 2026
c63fb46
Merge remote-tracking branch 'origin/main' into proto/skill-explorer
harlan-zw Sep 30, 2026
54b59c5
fix(registry): frontend review fixes for the Skill explorer
harlan-zw Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion app/components/SkillSourceList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ function sourcePath(item: SkillSourceItem): string {
</span>
<span
v-if="item.description"
class="mt-2 line-clamp-2 block text-sm text-muted"
class="mt-2 line-clamp-2 text-sm text-muted"
>
{{ item.description }}
</span>
Expand Down Expand Up @@ -275,6 +275,9 @@ function sourcePath(item: SkillSourceItem): string {

.skill-source-grid {
display: grid;
/* minmax(0) stops the truncated names from sizing the track to their full
length, which pushed cards past the edge of a phone screen. */
grid-template-columns: minmax(0, 1fr);
gap: 0.75rem;
}

Expand Down
11 changes: 2 additions & 9 deletions app/pages/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import type { SkillSourceItem } from '../types/skill-source'
import type { FeaturedPersonSection } from '../utils/homepage-person-skills'
import { avatarProxyUrl, githubAvatarProxyUrl } from '#shared/image-proxy'
import { TRENDING_RANGES } from '#shared/trending-range'
import { AGENT_LOGOS } from '~/utils/agent-logos'
import OutcomeClusterGrid from '../components/OutcomeClusterGrid.vue'
import { homepagePersonSkillFallbacks } from '../data/homepage-person-skills'
import {
Expand Down Expand Up @@ -292,15 +293,7 @@ const authoringEcosystems = [
const trendingDoorTarget = computed(() => (showTrending.value ? '#discover' : '/skills/trending'))

// Named agent row under the search: proof of "every agent".
const heroAgentLogos = [
{ id: 'claude-code', label: 'Claude Code', icon: 'i-simple-icons-claude' },
{ id: 'cursor', label: 'Cursor', icon: 'i-simple-icons-cursor' },
{ id: 'codex', label: 'Codex', icon: 'i-simple-icons-openai' },
{ id: 'gemini-cli', label: 'Gemini CLI', icon: 'i-simple-icons-googlegemini' },
{ id: 'github-copilot', label: 'Copilot', icon: 'i-simple-icons-githubcopilot' },
{ id: 'windsurf', label: 'Windsurf', icon: 'i-simple-icons-windsurf' },
{ id: 'opencode', label: 'OpenCode', icon: 'i-simple-icons-opencode' },
] as const
const heroAgentLogos = AGENT_LOGOS

const installTarget = computed<InstallTarget | null>(() => {
const collection = leadCollection.value
Expand Down
10 changes: 10 additions & 0 deletions app/utils/agent-logos.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/** Agents shown as proof of "every agent", on the homepage and the Skill page. */
export const AGENT_LOGOS = [
{ id: 'claude-code', label: 'Claude Code', icon: 'i-simple-icons-claude' },
{ id: 'cursor', label: 'Cursor', icon: 'i-simple-icons-cursor' },
{ id: 'codex', label: 'Codex', icon: 'i-simple-icons-openai' },
{ id: 'gemini-cli', label: 'Gemini CLI', icon: 'i-simple-icons-googlegemini' },
{ id: 'github-copilot', label: 'Copilot', icon: 'i-simple-icons-githubcopilot' },
{ id: 'windsurf', label: 'Windsurf', icon: 'i-simple-icons-windsurf' },
{ id: 'opencode', label: 'OpenCode', icon: 'i-simple-icons-opencode' },
] as const
2 changes: 1 addition & 1 deletion layers/marketing/app/pages/skills/trending.vue
Original file line number Diff line number Diff line change
Expand Up @@ -614,7 +614,7 @@ function rankClass(index: number): string {
{{ item.name }}
</NuxtLink>
<span class="ml-2 font-mono text-xs text-muted">{{ item.owner }}/{{ item.repo }}</span>
<span v-if="item.description" class="mt-1 line-clamp-2 block text-sm leading-relaxed text-muted">
<span v-if="item.description" class="mt-1 line-clamp-2 text-sm leading-relaxed text-muted">
{{ item.description }}
</span>
</li>
Expand Down
Loading