From 548661103db08773e8b108ccdf751d935ee5404a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 14:23:57 +0000 Subject: [PATCH 1/2] feat: wrap skill install step summary in details element for progressive disclosure Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- actions/setup/js/install_frontmatter_skills.cjs | 14 +++++++------- .../setup/js/install_frontmatter_skills.test.cjs | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/actions/setup/js/install_frontmatter_skills.cjs b/actions/setup/js/install_frontmatter_skills.cjs index dfc0c5a02ce..09e81eea3a0 100644 --- a/actions/setup/js/install_frontmatter_skills.cjs +++ b/actions/setup/js/install_frontmatter_skills.cjs @@ -132,17 +132,17 @@ function appendSkillInstallFailure(skillSpec, errorMessage) { * @returns {Promise} */ async function writeSkillSummary(skillDir, skills, installedSkillCount, failures) { - core.summary - .addRaw("### Frontmatter skills installed\n\n") - .addRaw(`- Engine skill directory: \`${skillDir}\`\n`) - .addRaw(`- Requested references: \`${JSON.stringify(skills)}\`\n`) - .addRaw(`- Installed SKILL.md files: ${installedSkillCount}\n`); + let body = ""; + body += `- Engine skill directory: \`${skillDir}\`\n`; + body += `- Requested references: \`${JSON.stringify(skills)}\`\n`; + body += `- Installed SKILL.md files: ${installedSkillCount}\n`; if (failures.length > 0) { - core.summary.addRaw("\n#### ⚠️ Skill install failures\n\n"); + body += "\n#### Skill install failures\n\n"; for (const f of failures) { - core.summary.addRaw(`- \`${f.skill}\`: ${f.error}\n`); + body += `- \`${f.skill}\`: ${f.error}\n`; } } + core.summary.addRaw(`### Frontmatter skills installed\n\n
\nSkill install details\n\n${body}\n
\n\n`); await core.summary.write(); } diff --git a/actions/setup/js/install_frontmatter_skills.test.cjs b/actions/setup/js/install_frontmatter_skills.test.cjs index 48c38921fcf..8330c10ccf4 100644 --- a/actions/setup/js/install_frontmatter_skills.test.cjs +++ b/actions/setup/js/install_frontmatter_skills.test.cjs @@ -123,6 +123,7 @@ describe("install_frontmatter_skills", () => { expect(global.exec.exec).toHaveBeenNthCalledWith(2, "gh", ["skill", "install", "githubnext/skills", "review/security", "--pin", "def456", "--agent", "claude-code", "--dir", "/tmp/gh-aw/.claude/skills", "--force"]); expect(global.exec.exec).toHaveBeenNthCalledWith(3, "gh", ["skill", "install", "${{ inputs.skill_ref }}", "--agent", "claude-code", "--dir", "/tmp/gh-aw/.claude/skills", "--force"]); expect(global.core.summary.addRaw).toHaveBeenCalledWith(expect.stringContaining("### Frontmatter skills installed")); + expect(global.core.summary.addRaw).toHaveBeenCalledWith(expect.stringContaining("
")); expect(global.core.summary.addRaw).toHaveBeenCalledWith(expect.stringContaining('["githubnext/skills@abc123","githubnext/skills/review/security@def456","${{ inputs.skill_ref }}"]')); }); From e5d682c51fef6db6b65187b846501b4555ffd87b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 15:43:55 +0000 Subject: [PATCH 2/2] fix: use
when skill install failures exist for visibility Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- actions/setup/js/install_frontmatter_skills.cjs | 3 ++- actions/setup/js/install_frontmatter_skills.test.cjs | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/actions/setup/js/install_frontmatter_skills.cjs b/actions/setup/js/install_frontmatter_skills.cjs index 09e81eea3a0..4d6664529de 100644 --- a/actions/setup/js/install_frontmatter_skills.cjs +++ b/actions/setup/js/install_frontmatter_skills.cjs @@ -142,7 +142,8 @@ async function writeSkillSummary(skillDir, skills, installedSkillCount, failures body += `- \`${f.skill}\`: ${f.error}\n`; } } - core.summary.addRaw(`### Frontmatter skills installed\n\n
\nSkill install details\n\n${body}\n
\n\n`); + const openAttr = failures.length > 0 ? " open" : ""; + core.summary.addRaw(`### Frontmatter skills installed\n\n\nSkill install details\n\n${body}\n
\n\n`); await core.summary.write(); } diff --git a/actions/setup/js/install_frontmatter_skills.test.cjs b/actions/setup/js/install_frontmatter_skills.test.cjs index 8330c10ccf4..061b09c599a 100644 --- a/actions/setup/js/install_frontmatter_skills.test.cjs +++ b/actions/setup/js/install_frontmatter_skills.test.cjs @@ -146,5 +146,6 @@ describe("install_frontmatter_skills", () => { const failures = JSON.parse(fs.readFileSync("/tmp/gh-aw/skill_install_failures.json", "utf8")); expect(failures).toEqual([{ skill: "bad/repo@abc123", error: "exit code 1 HTTP 404" }]); expect(global.core.warning).toHaveBeenCalledWith(expect.stringContaining("Failed to install skill 'bad/repo@abc123'")); + expect(global.core.summary.addRaw).toHaveBeenCalledWith(expect.stringContaining("
")); }); });