diff --git a/COPY.md b/COPY.md index f8e77708..767f1922 100644 --- a/COPY.md +++ b/COPY.md @@ -103,7 +103,7 @@ The Agent request uses `Fork this Skill: `. The Skill page's Markdown explains how to copy the source and install the local path. Keep run as the default. Fork is the opt-in for an editable local copy. The HTML page links to that Markdown with `Fork this Skill`. -Its description uses `A fork creates an editable local Skill with its original author and licence.` +Its description uses `Edit a local copy. It keeps the author and licence.` The fork link adds `?action=fork` to request only the fork workflow. That workflow uses a shallow fetch at one commit and plain installation output. Check existing files before fetching. Keep licence and provenance checks. diff --git a/layers/registry/app/components/SkillDetail.vue b/layers/registry/app/components/SkillDetail.vue index 3d00f745..1f434522 100644 --- a/layers/registry/app/components/SkillDetail.vue +++ b/layers/registry/app/components/SkillDetail.vue @@ -1807,7 +1807,7 @@ useHead(computed(() => ({
@@ -1840,20 +1840,34 @@ useHead(computed(() => ({ class="hidden lg:block" aria-labelledby="rail-behaviors-heading" > - +
+

+ Skill behaviors +

+ + Where each one appears + +
- - Where each one appears - diff --git a/layers/registry/app/components/_SkillCommandPanel.vue b/layers/registry/app/components/_SkillCommandPanel.vue index 7cd6f450..9dd0b303 100644 --- a/layers/registry/app/components/_SkillCommandPanel.vue +++ b/layers/registry/app/components/_SkillCommandPanel.vue @@ -1,9 +1,8 @@ + + diff --git a/test/unit/skill-detail-howto-schema.nuxt.test.ts b/test/unit/skill-detail-howto-schema.nuxt.test.ts index 5e834d8f..32f196ca 100644 --- a/test/unit/skill-detail-howto-schema.nuxt.test.ts +++ b/test/unit/skill-detail-howto-schema.nuxt.test.ts @@ -203,8 +203,7 @@ describe('skillDetail command choice', () => { }) expect(tabs!.findAll('.install-command')).toHaveLength(1) - expect(tabs!.get('.install-command').text()).toBe('https://skilld.dev/gh/antfu/skills/vite') - expect(tabs!.text()).toContain('Use this Skill:') + expect(tabs!.get('.install-command').text()).toBe('Use this Skill: https://skilld.dev/gh/antfu/skills/vite') const installTab = tabs!.findAll('button[aria-pressed]').find(button => button.text() === 'Install') expect(installTab, 'Install mode is missing').toBeTruthy() await installTab!.trigger('click') @@ -213,10 +212,10 @@ describe('skillDetail command choice', () => { }) expect(stacked!.findAll('.install-command').map(command => command.text())).toEqual([ - 'https://skilld.dev/gh/antfu/skills/vite', + 'Use this Skill: https://skilld.dev/gh/antfu/skills/vite', 'npx skilld install antfu/skills/vite', ]) - expect(stacked!.findAll('button').some(button => button.text() === 'Copy prompt')).toBe(true) + expect(stacked!.get('button[aria-label="Copy Agent prompt"]')).toBeTruthy() expect(stacked!.get('button[aria-label="Copy install command"]')).toBeTruthy() wrapper.unmount()