diff --git a/.github/workflows/impeccable-skills-reviewer.lock.yml b/.github/workflows/impeccable-skills-reviewer.lock.yml index 075c0b0300b..8da4ff55001 100644 --- a/.github/workflows/impeccable-skills-reviewer.lock.yml +++ b/.github/workflows/impeccable-skills-reviewer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"f58e37aea760ffc0e4efe30499e2ea857a0fc9f6797e1fff7b1fb41c51451a2e","body_hash":"0aa11746ce8e3ab3eba7be96b71d59cc833be9e0f239c10627f1ea0ef008a681","strict":true,"agent_id":"copilot","agent_model":"claude-sonnet-4.6","engine_versions":{"copilot":"1.0.65"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"37dea4a7d4eb227ed04d6e3e26096d19fc6f5bd5bae0a762defa9f6b190caec2","body_hash":"0aa11746ce8e3ab3eba7be96b71d59cc833be9e0f239c10627f1ea0ef008a681","strict":true,"agent_id":"copilot","agent_model":"claude-sonnet-4.6","engine_versions":{"copilot":"1.0.65"}} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.12","digest":"sha256:a3911ae633bfc49a96be10e660d447b65023731850fee3de8a074ff8861ffde3","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.12@sha256:a3911ae633bfc49a96be10e660d447b65023731850fee3de8a074ff8861ffde3"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.12","digest":"sha256:2329aff5e54bb5bf466ad94182eebbdfe4a4db497a9dfbe87442eb3400aa4a86","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.12@sha256:2329aff5e54bb5bf466ad94182eebbdfe4a4db497a9dfbe87442eb3400aa4a86"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.12","digest":"sha256:7d267199839cc0f23c01fd39f8c050a5d86cb6cc5058aa829cd472f405fb1a1d","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.12@sha256:7d267199839cc0f23c01fd39f8c050a5d86cb6cc5058aa829cd472f405fb1a1d"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.12","digest":"sha256:f5d9403364543b23a8510278854cf5517345419daed19de044a7130c03388484","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.12@sha256:f5d9403364543b23a8510278854cf5517345419daed19de044a7130c03388484"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.31","digest":"sha256:3147d7332939aeb2bc6a4220d96f6a0ca600b5cc0971200eca3d1e948fc8122a","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.31@sha256:3147d7332939aeb2bc6a4220d96f6a0ca600b5cc0971200eca3d1e948fc8122a"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.4.0","digest":"sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036","pinned_image":"ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036"}]} # This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -554,7 +554,7 @@ jobs: - env: GH_TOKEN: ${{ github.token }} name: Install Impeccable skills - run: "set -euo pipefail\nSKILLS_SRC=\"needex/skills\"\nSKILLS_DST=\"${RUNNER_TEMP}/gh-aw/impeccable-skills\"\nSKILLS_LIST=\"${RUNNER_TEMP}/gh-aw/impeccable-skills-list.txt\"\nmkdir -p \"${SKILLS_DST}\"\n\n# Discover available skills and install each one individually.\n# External skill repositories may be unavailable; continue with a best-effort review.\nif gh api \"repos/${SKILLS_SRC}/contents/skills\" --jq '[.[] | select(.type == \"dir\") | .name] | .[]' > \"${SKILLS_LIST}\"; then\n while IFS= read -r skill; do\n if ! gh skill install \"${SKILLS_SRC}\" \"$skill\" --dir \"${SKILLS_DST}\" --force; then\n echo \"::warning::Failed to install skill '${skill}' from ${SKILLS_SRC}; continuing.\"\n fi\n done < \"${SKILLS_LIST}\"\nelse\n echo \"::warning::Failed to discover skills from ${SKILLS_SRC}; continuing without external skills.\"\nfi\n\nSKILL_COUNT=$(find \"${SKILLS_DST}\" -name \"SKILL.md\" | wc -l)\necho \"Installed ${SKILL_COUNT} skill(s) from ${SKILLS_SRC}:\"\nfind \"${SKILLS_DST}\" -name \"SKILL.md\" | head -20\nif [ \"${SKILL_COUNT}\" -eq 0 ]; then\n echo \"::warning::No SKILL.md files found after installing ${SKILLS_SRC}; review will continue without external skills.\"\nfi\n" + run: "set -euo pipefail\nSKILLS_SRC=\"needex/skills\"\nSKILLS_DST=\"${RUNNER_TEMP}/gh-aw/impeccable-skills\"\nmkdir -p \"${SKILLS_DST}\"\n\n# Install all published skills in one step.\n# External skill repositories may be unavailable; continue with a best-effort review.\nif ! gh skill install \"${SKILLS_SRC}\" --all --dir \"${SKILLS_DST}\" --force; then\n echo \"::warning::Failed to install skills from ${SKILLS_SRC}; continuing without external skills.\"\nfi\n\nSKILL_COUNT=$(find \"${SKILLS_DST}\" -name \"SKILL.md\" | wc -l)\necho \"Installed ${SKILL_COUNT} skill(s) from ${SKILLS_SRC}:\"\nfind \"${SKILLS_DST}\" -name \"SKILL.md\" | head -20\nif [ \"${SKILL_COUNT}\" -eq 0 ]; then\n echo \"::warning::No SKILL.md files found after installing ${SKILLS_SRC}; review will continue without external skills.\"\nfi\n" - env: EXPR_GITHUB_REPOSITORY: ${{ github.repository }} GH_TOKEN: ${{ github.token }} diff --git a/.github/workflows/impeccable-skills-reviewer.md b/.github/workflows/impeccable-skills-reviewer.md index 8ddc4954647..97ca2327c65 100644 --- a/.github/workflows/impeccable-skills-reviewer.md +++ b/.github/workflows/impeccable-skills-reviewer.md @@ -44,19 +44,12 @@ pre-agent-steps: set -euo pipefail SKILLS_SRC="needex/skills" SKILLS_DST="${RUNNER_TEMP}/gh-aw/impeccable-skills" - SKILLS_LIST="${RUNNER_TEMP}/gh-aw/impeccable-skills-list.txt" mkdir -p "${SKILLS_DST}" - # Discover available skills and install each one individually. + # Install all published skills in one step. # External skill repositories may be unavailable; continue with a best-effort review. - if gh api "repos/${SKILLS_SRC}/contents/skills" --jq '[.[] | select(.type == "dir") | .name] | .[]' > "${SKILLS_LIST}"; then - while IFS= read -r skill; do - if ! gh skill install "${SKILLS_SRC}" "$skill" --dir "${SKILLS_DST}" --force; then - echo "::warning::Failed to install skill '${skill}' from ${SKILLS_SRC}; continuing." - fi - done < "${SKILLS_LIST}" - else - echo "::warning::Failed to discover skills from ${SKILLS_SRC}; continuing without external skills." + if ! gh skill install "${SKILLS_SRC}" --all --dir "${SKILLS_DST}" --force; then + echo "::warning::Failed to install skills from ${SKILLS_SRC}; continuing without external skills." fi SKILL_COUNT=$(find "${SKILLS_DST}" -name "SKILL.md" | wc -l) diff --git a/.github/workflows/mattpocock-skills-reviewer.lock.yml b/.github/workflows/mattpocock-skills-reviewer.lock.yml index 419bc3cd846..89b9d78c390 100644 --- a/.github/workflows/mattpocock-skills-reviewer.lock.yml +++ b/.github/workflows/mattpocock-skills-reviewer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"9c87898b967b31e00223a16153e18506b63fa748813629ba03e7214e0cd52929","body_hash":"753cc274467b9c3d937782c9d2031e596dfd90da4926d9152d25a236721b8823","strict":true,"agent_id":"copilot","agent_model":"claude-sonnet-4.6","engine_versions":{"copilot":"1.0.65"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"1b120c0e3973a1143cd5ed33b9ac1d868cffb1fc69ee69c81471824a2a7c2962","body_hash":"753cc274467b9c3d937782c9d2031e596dfd90da4926d9152d25a236721b8823","strict":true,"agent_id":"copilot","agent_model":"claude-sonnet-4.6","engine_versions":{"copilot":"1.0.65"}} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.12","digest":"sha256:a3911ae633bfc49a96be10e660d447b65023731850fee3de8a074ff8861ffde3","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.12@sha256:a3911ae633bfc49a96be10e660d447b65023731850fee3de8a074ff8861ffde3"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.12","digest":"sha256:2329aff5e54bb5bf466ad94182eebbdfe4a4db497a9dfbe87442eb3400aa4a86","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.12@sha256:2329aff5e54bb5bf466ad94182eebbdfe4a4db497a9dfbe87442eb3400aa4a86"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.12","digest":"sha256:7d267199839cc0f23c01fd39f8c050a5d86cb6cc5058aa829cd472f405fb1a1d","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.12@sha256:7d267199839cc0f23c01fd39f8c050a5d86cb6cc5058aa829cd472f405fb1a1d"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.12","digest":"sha256:f5d9403364543b23a8510278854cf5517345419daed19de044a7130c03388484","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.12@sha256:f5d9403364543b23a8510278854cf5517345419daed19de044a7130c03388484"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.31","digest":"sha256:3147d7332939aeb2bc6a4220d96f6a0ca600b5cc0971200eca3d1e948fc8122a","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.31@sha256:3147d7332939aeb2bc6a4220d96f6a0ca600b5cc0971200eca3d1e948fc8122a"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.4.0","digest":"sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036","pinned_image":"ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036"}]} # This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -589,7 +589,7 @@ jobs: - env: GH_TOKEN: ${{ github.token }} name: Install Matt Pocock skills - run: "set -euo pipefail\nSKILLS_DST=\"${RUNNER_TEMP}/gh-aw/mattpocock-skills\"\nmkdir -p \"${SKILLS_DST}\"\n# Discover all engineering skills and install each individually.\n# gh skill install requires a skill name in non-interactive (CI) mode.\n# Use --dir to install directly to the target directory.\nwhile IFS= read -r skill; do\n gh skill install mattpocock/skills \"$skill\" --dir \"${SKILLS_DST}\" --force\ndone < <(gh api repos/mattpocock/skills/contents/skills/engineering \\\n --jq '[.[] | select(.type == \"dir\") | .name] | .[]')\nSKILL_COUNT=$(find \"${SKILLS_DST}\" -name \"SKILL.md\" | wc -l)\necho \"Installed ${SKILL_COUNT} skill(s):\"\nfind \"${SKILLS_DST}\" -name \"SKILL.md\" | head -20\nif [ \"${SKILL_COUNT}\" -eq 0 ]; then\n echo \"::error::No SKILL.md files found after installing mattpocock/skills\"\n exit 1\nfi\n" + run: "set -euo pipefail\nSKILLS_DST=\"${RUNNER_TEMP}/gh-aw/mattpocock-skills\"\nmkdir -p \"${SKILLS_DST}\"\n# Install all published skills in one step.\ngh skill install mattpocock/skills --all --dir \"${SKILLS_DST}\" --force\nSKILL_COUNT=$(find \"${SKILLS_DST}\" -name \"SKILL.md\" | wc -l)\necho \"Installed ${SKILL_COUNT} skill(s):\"\nfind \"${SKILLS_DST}\" -name \"SKILL.md\" | head -20\nif [ \"${SKILL_COUNT}\" -eq 0 ]; then\n echo \"::error::No SKILL.md files found after installing mattpocock/skills\"\n exit 1\nfi\n" - env: EXPR_GITHUB_REPOSITORY: ${{ github.repository }} GH_TOKEN: ${{ github.token }} diff --git a/.github/workflows/mattpocock-skills-reviewer.md b/.github/workflows/mattpocock-skills-reviewer.md index ec346ced6c8..e1c326b4eab 100644 --- a/.github/workflows/mattpocock-skills-reviewer.md +++ b/.github/workflows/mattpocock-skills-reviewer.md @@ -45,13 +45,8 @@ pre-agent-steps: set -euo pipefail SKILLS_DST="${RUNNER_TEMP}/gh-aw/mattpocock-skills" mkdir -p "${SKILLS_DST}" - # Discover all engineering skills and install each individually. - # gh skill install requires a skill name in non-interactive (CI) mode. - # Use --dir to install directly to the target directory. - while IFS= read -r skill; do - gh skill install mattpocock/skills "$skill" --dir "${SKILLS_DST}" --force - done < <(gh api repos/mattpocock/skills/contents/skills/engineering \ - --jq '[.[] | select(.type == "dir") | .name] | .[]') + # Install all published skills in one step. + gh skill install mattpocock/skills --all --dir "${SKILLS_DST}" --force SKILL_COUNT=$(find "${SKILLS_DST}" -name "SKILL.md" | wc -l) echo "Installed ${SKILL_COUNT} skill(s):" find "${SKILLS_DST}" -name "SKILL.md" | head -20