@@ -206,6 +206,51 @@ func TestPreviewRun(t *testing.T) {
206206 },
207207 wantStdout : "My Skill" ,
208208 },
209+ {
210+ name : "preview plugins skill matched by install name" ,
211+ tty : true ,
212+ opts : & PreviewOptions {
213+ repo : ghrepo .New ("owner" , "repo" ),
214+ SkillName : "aws-common/aws-mcp-setup" ,
215+ },
216+ httpStubs : func (reg * httpmock.Registry ) {
217+ reg .Register (
218+ httpmock .REST ("GET" , "repos/owner/repo/releases/latest" ),
219+ httpmock .StringResponse (`{"tag_name": "v1.0.0"}` ),
220+ )
221+ reg .Register (
222+ httpmock .REST ("GET" , "repos/owner/repo/git/ref/tags/v1.0.0" ),
223+ httpmock .StringResponse (`{"object": {"sha": "abc123", "type": "commit"}}` ),
224+ )
225+ reg .Register (
226+ httpmock .REST ("GET" , "repos/owner/repo/git/trees/abc123" ),
227+ httpmock .StringResponse (`{
228+ "sha": "abc123",
229+ "truncated": false,
230+ "tree": [
231+ {"path": "plugins", "type": "tree", "sha": "tree-plugins"},
232+ {"path": "plugins/aws-common", "type": "tree", "sha": "tree-awscommon"},
233+ {"path": "plugins/aws-common/skills", "type": "tree", "sha": "tree-awsskills"},
234+ {"path": "plugins/aws-common/skills/aws-mcp-setup", "type": "tree", "sha": "treeSHA3"},
235+ {"path": "plugins/aws-common/skills/aws-mcp-setup/SKILL.md", "type": "blob", "sha": "blob789"}
236+ ]
237+ }` ),
238+ )
239+ reg .Register (
240+ httpmock .REST ("GET" , "repos/owner/repo/git/trees/treeSHA3" ),
241+ httpmock .StringResponse (`{
242+ "tree": [
243+ {"path": "SKILL.md", "type": "blob", "sha": "blob789", "size": 50}
244+ ]
245+ }` ),
246+ )
247+ reg .Register (
248+ httpmock .REST ("GET" , "repos/owner/repo/git/blobs/blob789" ),
249+ httpmock .StringResponse (`{"sha": "blob789", "content": "` + encodedContent + `", "encoding": "base64"}` ),
250+ )
251+ },
252+ wantStdout : "My Skill" ,
253+ },
209254 {
210255 name : "skill not found" ,
211256 tty : true ,
0 commit comments