diff --git a/.github/workflows/gh-aw-docs-applies-to-sweep.lock.yml b/.github/workflows/gh-aw-docs-applies-to-sweep.lock.yml
index d296afa1..27218ae1 100644
--- a/.github/workflows/gh-aw-docs-applies-to-sweep.lock.yml
+++ b/.github/workflows/gh-aw-docs-applies-to-sweep.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ad868bfa27a4184f40a3a4828aae5f8f16d0098cddbf5a9501110fa6e070c9ff","compiler_version":"v0.71.1","agent_id":"copilot"}
+# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6c6e287cbe2620eaae9b2b247506a4205936ad12882eb3480d623ab1f905fec5","compiler_version":"v0.71.1","agent_id":"copilot"}
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PLUGINS_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"239aec45b78c8799417efdd5bc6d8cc036629ec1","version":"v0.71.1"},{"repo":"microsoft/apm-action","sha":"a190b0b1a91031057144dc136acf9757a59c9e4d","version":"v1.4.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.28","digest":"sha256:a8834e285807654bf680154faa710d43fe4365a0868142f5c20e48c85e137a7a","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.28@sha256:a8834e285807654bf680154faa710d43fe4365a0868142f5c20e48c85e137a7a"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.28","digest":"sha256:93290f2393752252911bd7c39a047f776c0b53063575e7bde4e304962a9a61cb","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.28@sha256:93290f2393752252911bd7c39a047f776c0b53063575e7bde4e304962a9a61cb"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.28","digest":"sha256:844c18280f82cd1b06345eb2f4e91966b34185bfc51c9f237c3e022e848fb474","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.28@sha256:844c18280f82cd1b06345eb2f4e91966b34185bfc51c9f237c3e022e848fb474"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.0"},{"image":"ghcr.io/github/github-mcp-server:v1.0.2"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]}
# ___ _ _
# / _ \ | | (_)
@@ -238,14 +238,14 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_88147936a1ec6361_EOF'
+ cat << 'GH_AW_PROMPT_ad72b75ffc5e753d_EOF'
- GH_AW_PROMPT_88147936a1ec6361_EOF
+ GH_AW_PROMPT_ad72b75ffc5e753d_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_88147936a1ec6361_EOF'
+ cat << 'GH_AW_PROMPT_ad72b75ffc5e753d_EOF'
Tools: create_issue, missing_tool, missing_data, noop
@@ -277,9 +277,9 @@ jobs:
{{/if}}
- GH_AW_PROMPT_88147936a1ec6361_EOF
+ GH_AW_PROMPT_ad72b75ffc5e753d_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_88147936a1ec6361_EOF'
+ cat << 'GH_AW_PROMPT_ad72b75ffc5e753d_EOF'
@@ -323,7 +323,13 @@ jobs:
**Audit mode only — do not write any files.** The skill defaults to validation when not asked to fix; reinforce that intent in the call. This sweep produces an issue, not edits.
- If the skill fails, abort the run by calling `noop` with `"docs-applies-to-tagging skill unavailable"` — there is no fallback heuristic worth filing as findings.
+ **Only treat the skill as unavailable after a confirmed exact-form failure.** Stochastic agent retries sometimes invoke the skill with a shortened form (e.g., `skill(docs-applies-to-tagging)` without the `skill:` prefix) which fails before the exact form is tried. Procedure:
+
+ 1. Invoke with the exact form `skill(skill: docs-applies-to-tagging)`.
+ 2. If the result is "Skill not found", retry once more with the same exact form.
+ 3. Only after a second exact-form failure, abort the run by calling `noop` with `"docs-applies-to-tagging skill unavailable"` — there is no fallback heuristic worth filing as findings.
+
+ A single first-attempt failure (especially with a non-exact form) is **not** sufficient evidence to noop.
## Step 2: Build the findings list
@@ -395,7 +401,7 @@ jobs:
__GH_AW_EXPR_49B959F1__
- GH_AW_PROMPT_88147936a1ec6361_EOF
+ GH_AW_PROMPT_ad72b75ffc5e753d_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -630,9 +636,9 @@ jobs:
mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
mkdir -p /tmp/gh-aw/safeoutputs
mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
- cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_399748d20e7cdf9f_EOF'
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_178d46093c00cd09_EOF'
{"create_issue":{"close_older_issues":true,"labels":["docs-quality-sweep","docs-fix:applies-to"],"max":1,"title_prefix":"Docs fix — applies_to: "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
- GH_AW_SAFE_OUTPUTS_CONFIG_399748d20e7cdf9f_EOF
+ GH_AW_SAFE_OUTPUTS_CONFIG_178d46093c00cd09_EOF
- name: Write Safe Outputs Tools
env:
GH_AW_TOOLS_META_JSON: |
@@ -831,7 +837,7 @@ jobs:
mkdir -p /home/runner/.copilot
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_4c64c7d37043d9fa_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_b50d0f37a270fd14_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
"github": {
@@ -872,7 +878,7 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_4c64c7d37043d9fa_EOF
+ GH_AW_MCP_CONFIG_b50d0f37a270fd14_EOF
- name: Clean git credentials
continue-on-error: true
run: bash "${RUNNER_TEMP}/gh-aw/actions/clean_git_credentials.sh"
diff --git a/.github/workflows/gh-aw-docs-applies-to-sweep.md b/.github/workflows/gh-aw-docs-applies-to-sweep.md
index 6cd73aab..298a0cf9 100644
--- a/.github/workflows/gh-aw-docs-applies-to-sweep.md
+++ b/.github/workflows/gh-aw-docs-applies-to-sweep.md
@@ -205,7 +205,13 @@ Invoke `skill(skill: docs-applies-to-tagging)` against `/tmp/gh-aw/sweep-data/sc
**Audit mode only — do not write any files.** The skill defaults to validation when not asked to fix; reinforce that intent in the call. This sweep produces an issue, not edits.
-If the skill fails, abort the run by calling `noop` with `"docs-applies-to-tagging skill unavailable"` — there is no fallback heuristic worth filing as findings.
+**Only treat the skill as unavailable after a confirmed exact-form failure.** Stochastic agent retries sometimes invoke the skill with a shortened form (e.g., `skill(docs-applies-to-tagging)` without the `skill:` prefix) which fails before the exact form is tried. Procedure:
+
+1. Invoke with the exact form `skill(skill: docs-applies-to-tagging)`.
+2. If the result is "Skill not found", retry once more with the same exact form.
+3. Only after a second exact-form failure, abort the run by calling `noop` with `"docs-applies-to-tagging skill unavailable"` — there is no fallback heuristic worth filing as findings.
+
+A single first-attempt failure (especially with a non-exact form) is **not** sufficient evidence to noop.
## Step 2: Build the findings list
diff --git a/.github/workflows/gh-aw-docs-openings-sweep.lock.yml b/.github/workflows/gh-aw-docs-openings-sweep.lock.yml
index 5f253398..74df8ae9 100644
--- a/.github/workflows/gh-aw-docs-openings-sweep.lock.yml
+++ b/.github/workflows/gh-aw-docs-openings-sweep.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6f6279fea6cdf80fa95c543e8a7d38961a967796dfa1a36ba4326db47c6ead0f","compiler_version":"v0.71.1","agent_id":"copilot"}
+# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"08032eab8dfed54c52b2f23c54aa004e60ebc459a0b6b11ae400fbb465a50709","compiler_version":"v0.71.1","agent_id":"copilot"}
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PLUGINS_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"239aec45b78c8799417efdd5bc6d8cc036629ec1","version":"v0.71.1"},{"repo":"microsoft/apm-action","sha":"a190b0b1a91031057144dc136acf9757a59c9e4d","version":"v1.4.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.28","digest":"sha256:a8834e285807654bf680154faa710d43fe4365a0868142f5c20e48c85e137a7a","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.28@sha256:a8834e285807654bf680154faa710d43fe4365a0868142f5c20e48c85e137a7a"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.28","digest":"sha256:93290f2393752252911bd7c39a047f776c0b53063575e7bde4e304962a9a61cb","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.28@sha256:93290f2393752252911bd7c39a047f776c0b53063575e7bde4e304962a9a61cb"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.28","digest":"sha256:844c18280f82cd1b06345eb2f4e91966b34185bfc51c9f237c3e022e848fb474","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.28@sha256:844c18280f82cd1b06345eb2f4e91966b34185bfc51c9f237c3e022e848fb474"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.0"},{"image":"ghcr.io/github/github-mcp-server:v1.0.2"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]}
# ___ _ _
# / _ \ | | (_)
@@ -238,14 +238,14 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_02c2c1656d4b667b_EOF'
+ cat << 'GH_AW_PROMPT_f44a78553f76460b_EOF'
- GH_AW_PROMPT_02c2c1656d4b667b_EOF
+ GH_AW_PROMPT_f44a78553f76460b_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_02c2c1656d4b667b_EOF'
+ cat << 'GH_AW_PROMPT_f44a78553f76460b_EOF'
Tools: create_issue, missing_tool, missing_data, noop
@@ -277,9 +277,9 @@ jobs:
{{/if}}
- GH_AW_PROMPT_02c2c1656d4b667b_EOF
+ GH_AW_PROMPT_f44a78553f76460b_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_02c2c1656d4b667b_EOF'
+ cat << 'GH_AW_PROMPT_f44a78553f76460b_EOF'
@@ -323,7 +323,13 @@ jobs:
**Suggest only — do not produce edits to repo originals.** This sweep emits an issue, not a PR. The skill may modify files inside the scope copy directory; that is fine — the changes are scratch. To recover the suggestion, diff each modified scope file against the original at `__GH_AW_GITHUB_WORKSPACE__/`.
- If the skill fails, abort by calling `noop` with `"docs-page-opening-optimizer skill unavailable"`.
+ **Only treat the skill as unavailable after a confirmed exact-form failure.** Stochastic agent retries sometimes invoke the skill with a shortened form (e.g., `skill(docs-page-opening-optimizer)` without the `skill:` prefix) which fails before the exact form is tried. Procedure:
+
+ 1. Invoke with the exact form `skill(skill: docs-page-opening-optimizer)`.
+ 2. If the result is "Skill not found", retry once more with the same exact form.
+ 3. Only after a second exact-form failure, abort by calling `noop` with `"docs-page-opening-optimizer skill unavailable"`.
+
+ A single first-attempt failure (especially with a non-exact form) is **not** sufficient evidence to noop.
## Optional: cross-check H1 specificity via the Elastic Docs MCP server
@@ -412,7 +418,7 @@ jobs:
__GH_AW_EXPR_49B959F1__
- GH_AW_PROMPT_02c2c1656d4b667b_EOF
+ GH_AW_PROMPT_f44a78553f76460b_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -648,9 +654,9 @@ jobs:
mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
mkdir -p /tmp/gh-aw/safeoutputs
mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
- cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_5698c544e76857ff_EOF'
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_8f8584f10234c1e6_EOF'
{"create_issue":{"close_older_issues":true,"labels":["docs-quality-sweep","docs-fix:openings"],"max":1,"title_prefix":"Docs fix — page openings: "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
- GH_AW_SAFE_OUTPUTS_CONFIG_5698c544e76857ff_EOF
+ GH_AW_SAFE_OUTPUTS_CONFIG_8f8584f10234c1e6_EOF
- name: Write Safe Outputs Tools
env:
GH_AW_TOOLS_META_JSON: |
@@ -849,7 +855,7 @@ jobs:
mkdir -p /home/runner/.copilot
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_0eef75259701ab75_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_fbf511c6ac4d06a1_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
"elastic-docs": {
@@ -904,7 +910,7 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_0eef75259701ab75_EOF
+ GH_AW_MCP_CONFIG_fbf511c6ac4d06a1_EOF
- name: Clean git credentials
continue-on-error: true
run: bash "${RUNNER_TEMP}/gh-aw/actions/clean_git_credentials.sh"
diff --git a/.github/workflows/gh-aw-docs-openings-sweep.md b/.github/workflows/gh-aw-docs-openings-sweep.md
index e0a5b847..dbb108a1 100644
--- a/.github/workflows/gh-aw-docs-openings-sweep.md
+++ b/.github/workflows/gh-aw-docs-openings-sweep.md
@@ -213,7 +213,13 @@ Invoke `skill(skill: docs-page-opening-optimizer)` against `/tmp/gh-aw/sweep-dat
**Suggest only — do not produce edits to repo originals.** This sweep emits an issue, not a PR. The skill may modify files inside the scope copy directory; that is fine — the changes are scratch. To recover the suggestion, diff each modified scope file against the original at `${{ github.workspace }}/`.
-If the skill fails, abort by calling `noop` with `"docs-page-opening-optimizer skill unavailable"`.
+**Only treat the skill as unavailable after a confirmed exact-form failure.** Stochastic agent retries sometimes invoke the skill with a shortened form (e.g., `skill(docs-page-opening-optimizer)` without the `skill:` prefix) which fails before the exact form is tried. Procedure:
+
+1. Invoke with the exact form `skill(skill: docs-page-opening-optimizer)`.
+2. If the result is "Skill not found", retry once more with the same exact form.
+3. Only after a second exact-form failure, abort by calling `noop` with `"docs-page-opening-optimizer skill unavailable"`.
+
+A single first-attempt failure (especially with a non-exact form) is **not** sufficient evidence to noop.
## Optional: cross-check H1 specificity via the Elastic Docs MCP server
diff --git a/.github/workflows/gh-aw-docs-style-sweep.lock.yml b/.github/workflows/gh-aw-docs-style-sweep.lock.yml
index b27c5347..500fa790 100644
--- a/.github/workflows/gh-aw-docs-style-sweep.lock.yml
+++ b/.github/workflows/gh-aw-docs-style-sweep.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"356460abb71bc1fecd67fd29516e54908d0e2939b695130e5b48fbba337a7a02","compiler_version":"v0.71.1","agent_id":"copilot"}
+# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"893c1266ae04dc958191ac6c0eddda24de07a27586a3ab1ade2fda6cf5777fd0","compiler_version":"v0.71.1","agent_id":"copilot"}
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PLUGINS_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"239aec45b78c8799417efdd5bc6d8cc036629ec1","version":"v0.71.1"},{"repo":"microsoft/apm-action","sha":"a190b0b1a91031057144dc136acf9757a59c9e4d","version":"v1.4.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.28","digest":"sha256:a8834e285807654bf680154faa710d43fe4365a0868142f5c20e48c85e137a7a","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.28@sha256:a8834e285807654bf680154faa710d43fe4365a0868142f5c20e48c85e137a7a"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.28","digest":"sha256:93290f2393752252911bd7c39a047f776c0b53063575e7bde4e304962a9a61cb","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.28@sha256:93290f2393752252911bd7c39a047f776c0b53063575e7bde4e304962a9a61cb"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.28","digest":"sha256:844c18280f82cd1b06345eb2f4e91966b34185bfc51c9f237c3e022e848fb474","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.28@sha256:844c18280f82cd1b06345eb2f4e91966b34185bfc51c9f237c3e022e848fb474"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.0"},{"image":"ghcr.io/github/github-mcp-server:v1.0.2"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]}
# ___ _ _
# / _ \ | | (_)
@@ -238,14 +238,14 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_7f3bcf6fb40df824_EOF'
+ cat << 'GH_AW_PROMPT_101c065335a86e15_EOF'
- GH_AW_PROMPT_7f3bcf6fb40df824_EOF
+ GH_AW_PROMPT_101c065335a86e15_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_7f3bcf6fb40df824_EOF'
+ cat << 'GH_AW_PROMPT_101c065335a86e15_EOF'
Tools: create_issue, missing_tool, missing_data, noop
@@ -277,9 +277,9 @@ jobs:
{{/if}}
- GH_AW_PROMPT_7f3bcf6fb40df824_EOF
+ GH_AW_PROMPT_101c065335a86e15_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_7f3bcf6fb40df824_EOF'
+ cat << 'GH_AW_PROMPT_101c065335a86e15_EOF'
@@ -321,7 +321,13 @@ jobs:
The skill produces line-level findings grouped by category (Voice/Tone, Word Choice, Grammar, Formatting, Accessibility, UI Writing). Read its output and convert into the YAML structure below.
- If the skill fails, abort by calling `noop` with `"docs-check-style skill unavailable"`.
+ **Only treat the skill as unavailable after a confirmed exact-form failure.** Stochastic agent retries sometimes invoke the skill with a shortened form (e.g., `skill(docs-check-style)` without the `skill:` prefix) which fails before the exact form is tried. Procedure:
+
+ 1. Invoke with the exact form `skill(skill: docs-check-style)`.
+ 2. If the result is "Skill not found", retry once more with the same exact form.
+ 3. Only after a second exact-form failure, abort by calling `noop` with `"docs-check-style skill unavailable"`.
+
+ A single first-attempt failure (especially with a non-exact form) is **not** sufficient evidence to noop.
## Step 2: Build the findings list
@@ -400,7 +406,7 @@ jobs:
__GH_AW_EXPR_49B959F1__
- GH_AW_PROMPT_7f3bcf6fb40df824_EOF
+ GH_AW_PROMPT_101c065335a86e15_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -635,9 +641,9 @@ jobs:
mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
mkdir -p /tmp/gh-aw/safeoutputs
mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
- cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_dcc87217fc722c87_EOF'
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f8bd704bf8943f98_EOF'
{"create_issue":{"close_older_issues":true,"labels":["docs-quality-sweep","docs-fix:style"],"max":1,"title_prefix":"Docs fix — style: "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
- GH_AW_SAFE_OUTPUTS_CONFIG_dcc87217fc722c87_EOF
+ GH_AW_SAFE_OUTPUTS_CONFIG_f8bd704bf8943f98_EOF
- name: Write Safe Outputs Tools
env:
GH_AW_TOOLS_META_JSON: |
@@ -836,7 +842,7 @@ jobs:
mkdir -p /home/runner/.copilot
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_d5a3caa1f7244a2e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_0c165e16dd944b64_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
"github": {
@@ -877,7 +883,7 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_d5a3caa1f7244a2e_EOF
+ GH_AW_MCP_CONFIG_0c165e16dd944b64_EOF
- name: Clean git credentials
continue-on-error: true
run: bash "${RUNNER_TEMP}/gh-aw/actions/clean_git_credentials.sh"
diff --git a/.github/workflows/gh-aw-docs-style-sweep.md b/.github/workflows/gh-aw-docs-style-sweep.md
index a78edcf9..548e81dc 100644
--- a/.github/workflows/gh-aw-docs-style-sweep.md
+++ b/.github/workflows/gh-aw-docs-style-sweep.md
@@ -204,7 +204,13 @@ Invoke `skill(skill: docs-check-style)` against `/tmp/gh-aw/sweep-data/scope/`.
The skill produces line-level findings grouped by category (Voice/Tone, Word Choice, Grammar, Formatting, Accessibility, UI Writing). Read its output and convert into the YAML structure below.
-If the skill fails, abort by calling `noop` with `"docs-check-style skill unavailable"`.
+**Only treat the skill as unavailable after a confirmed exact-form failure.** Stochastic agent retries sometimes invoke the skill with a shortened form (e.g., `skill(docs-check-style)` without the `skill:` prefix) which fails before the exact form is tried. Procedure:
+
+1. Invoke with the exact form `skill(skill: docs-check-style)`.
+2. If the result is "Skill not found", retry once more with the same exact form.
+3. Only after a second exact-form failure, abort by calling `noop` with `"docs-check-style skill unavailable"`.
+
+A single first-attempt failure (especially with a non-exact form) is **not** sufficient evidence to noop.
## Step 2: Build the findings list