diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml
index 520d817010..ac83b8aed1 100644
--- a/.github/workflows/ace-editor.lock.yml
+++ b/.github/workflows/ace-editor.lock.yml
@@ -147,14 +147,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml
index 9b418adf17..4d0cdd9035 100644
--- a/.github/workflows/agent-performance-analyzer.lock.yml
+++ b/.github/workflows/agent-performance-analyzer.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -821,8 +821,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml
index 50836a9cde..9645660e4a 100644
--- a/.github/workflows/agent-persona-explorer.lock.yml
+++ b/.github/workflows/agent-persona-explorer.lock.yml
@@ -144,14 +144,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -770,8 +770,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/agentic-observability-kit.lock.yml b/.github/workflows/agentic-observability-kit.lock.yml
index 39228a1d69..10ff5183f6 100644
--- a/.github/workflows/agentic-observability-kit.lock.yml
+++ b/.github/workflows/agentic-observability-kit.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -776,8 +776,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml
index 73e0bfd72f..b1e7535c49 100644
--- a/.github/workflows/ai-moderator.lock.yml
+++ b/.github/workflows/ai-moderator.lock.yml
@@ -159,14 +159,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -753,8 +753,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/api-consumption-report.lock.yml b/.github/workflows/api-consumption-report.lock.yml
index e2f817e127..19619e8da3 100644
--- a/.github/workflows/api-consumption-report.lock.yml
+++ b/.github/workflows/api-consumption-report.lock.yml
@@ -146,14 +146,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -810,8 +810,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/approach-validator.lock.yml b/.github/workflows/approach-validator.lock.yml
index d537229e35..d357602b23 100644
--- a/.github/workflows/approach-validator.lock.yml
+++ b/.github/workflows/approach-validator.lock.yml
@@ -161,14 +161,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -729,8 +729,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml
index eb24991ef3..81d8f4a105 100644
--- a/.github/workflows/archie.lock.yml
+++ b/.github/workflows/archie.lock.yml
@@ -158,14 +158,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -782,8 +782,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/architecture-guardian.lock.yml b/.github/workflows/architecture-guardian.lock.yml
index 39be9fb6ea..76062a58eb 100644
--- a/.github/workflows/architecture-guardian.lock.yml
+++ b/.github/workflows/architecture-guardian.lock.yml
@@ -130,14 +130,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -663,8 +663,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml
index 0a313887fd..c770ad6b25 100644
--- a/.github/workflows/artifacts-summary.lock.yml
+++ b/.github/workflows/artifacts-summary.lock.yml
@@ -130,14 +130,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -655,8 +655,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml
index df6e43e1c0..08bba46fbb 100644
--- a/.github/workflows/audit-workflows.lock.yml
+++ b/.github/workflows/audit-workflows.lock.yml
@@ -147,14 +147,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -829,8 +829,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml
index 8311347029..787409e47b 100644
--- a/.github/workflows/auto-triage-issues.lock.yml
+++ b/.github/workflows/auto-triage-issues.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -718,8 +718,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/aw-failure-investigator.lock.yml b/.github/workflows/aw-failure-investigator.lock.yml
index 2281ace1ab..d8a41d853d 100644
--- a/.github/workflows/aw-failure-investigator.lock.yml
+++ b/.github/workflows/aw-failure-investigator.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1ad248ea1db0894bbc04d5258f256ae1f0b0641b145e5b79b3b3d327b83a27ca","strict":true,"agent_id":"claude"}
+# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7042be7235aba0afc736f3291e4bcc19917eb7f5fc389058f4631ad497bdd587","strict":true,"agent_id":"claude"}
# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"53b83947a5a98c8d113130e565377fae1a50d02f","version":"v6.3.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.23"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.23"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.23"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.2.22"},{"image":"ghcr.io/github/github-mcp-server:v0.32.0","digest":"sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28","pinned_image":"ghcr.io/github/github-mcp-server:v0.32.0@sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28"},{"image":"node:lts-alpine","digest":"sha256:01743339035a5c3c11a373cd7c83aeab6ed1457b55da6a69e014a95ac4e4700b","pinned_image":"node:lts-alpine@sha256:01743339035a5c3c11a373cd7c83aeab6ed1457b55da6a69e014a95ac4e4700b"}]}
# ___ _ _
# / _ \ | | (_)
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -819,8 +819,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml
index fb52b5c92a..fda7f8e4ba 100644
--- a/.github/workflows/blog-auditor.lock.yml
+++ b/.github/workflows/blog-auditor.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -694,8 +694,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml
index 9a2a637007..7134413682 100644
--- a/.github/workflows/bot-detection.lock.yml
+++ b/.github/workflows/bot-detection.lock.yml
@@ -134,14 +134,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -739,8 +739,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml
index ffab1e8767..5fef4b79fc 100644
--- a/.github/workflows/brave.lock.yml
+++ b/.github/workflows/brave.lock.yml
@@ -147,14 +147,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -727,8 +727,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml
index 1d8bdf556b..be8a5aa534 100644
--- a/.github/workflows/breaking-change-checker.lock.yml
+++ b/.github/workflows/breaking-change-checker.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -671,8 +671,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml
index c55c264724..65f8328c00 100644
--- a/.github/workflows/changeset.lock.yml
+++ b/.github/workflows/changeset.lock.yml
@@ -170,14 +170,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -774,8 +774,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml
index ceee1de635..020e494326 100644
--- a/.github/workflows/ci-coach.lock.yml
+++ b/.github/workflows/ci-coach.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -744,8 +744,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml
index 56a1ffe052..bbe568b3a3 100644
--- a/.github/workflows/ci-doctor.lock.yml
+++ b/.github/workflows/ci-doctor.lock.yml
@@ -163,14 +163,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -866,8 +866,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml
index a3b5663154..332eb63748 100644
--- a/.github/workflows/claude-code-user-docs-review.lock.yml
+++ b/.github/workflows/claude-code-user-docs-review.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -687,8 +687,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml
index d462dfc533..410e2da222 100644
--- a/.github/workflows/cli-consistency-checker.lock.yml
+++ b/.github/workflows/cli-consistency-checker.lock.yml
@@ -125,14 +125,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -658,8 +658,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml
index a8e74e2bb1..c979785b52 100644
--- a/.github/workflows/cli-version-checker.lock.yml
+++ b/.github/workflows/cli-version-checker.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -695,8 +695,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml
index 13ed16bc4a..4bdb52ef11 100644
--- a/.github/workflows/cloclo.lock.yml
+++ b/.github/workflows/cloclo.lock.yml
@@ -191,14 +191,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1002,8 +1002,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml
index 3d4c9c0b44..4b111e6dbe 100644
--- a/.github/workflows/code-scanning-fixer.lock.yml
+++ b/.github/workflows/code-scanning-fixer.lock.yml
@@ -134,14 +134,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -729,8 +729,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml
index 7d270a3e27..0e4ad684a3 100644
--- a/.github/workflows/code-simplifier.lock.yml
+++ b/.github/workflows/code-simplifier.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -683,8 +683,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml
index f541a6d26d..ac6b957634 100644
--- a/.github/workflows/codex-github-remote-mcp-test.lock.yml
+++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml
@@ -130,14 +130,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -440,8 +440,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml
index 3ef3e099f5..aa54227c15 100644
--- a/.github/workflows/commit-changes-analyzer.lock.yml
+++ b/.github/workflows/commit-changes-analyzer.lock.yml
@@ -138,14 +138,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -662,8 +662,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml
index fd5eaaf081..16bba49a8f 100644
--- a/.github/workflows/constraint-solving-potd.lock.yml
+++ b/.github/workflows/constraint-solving-potd.lock.yml
@@ -133,14 +133,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml
index 203f258955..5af2bcc3fe 100644
--- a/.github/workflows/contribution-check.lock.yml
+++ b/.github/workflows/contribution-check.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -781,8 +781,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml
index 636e9b59a6..00185b4272 100644
--- a/.github/workflows/copilot-agent-analysis.lock.yml
+++ b/.github/workflows/copilot-agent-analysis.lock.yml
@@ -144,14 +144,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -726,8 +726,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml
index 8211b7fca8..88285ce0b0 100644
--- a/.github/workflows/copilot-cli-deep-research.lock.yml
+++ b/.github/workflows/copilot-cli-deep-research.lock.yml
@@ -129,14 +129,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -682,8 +682,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml
index ec90996b15..25804dd713 100644
--- a/.github/workflows/copilot-pr-merged-report.lock.yml
+++ b/.github/workflows/copilot-pr-merged-report.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -726,8 +726,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml
index 61e80ab93d..8988861ca5 100644
--- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml
+++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -770,8 +770,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml
index be7a18be01..d5324a50d1 100644
--- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml
+++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -723,8 +723,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml
index 6f803e27cf..5c6772c17b 100644
--- a/.github/workflows/copilot-session-insights.lock.yml
+++ b/.github/workflows/copilot-session-insights.lock.yml
@@ -147,14 +147,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -771,8 +771,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml
index 8a25807479..105e5e8c29 100644
--- a/.github/workflows/copilot-token-audit.lock.yml
+++ b/.github/workflows/copilot-token-audit.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -844,8 +844,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/copilot-token-optimizer.lock.yml b/.github/workflows/copilot-token-optimizer.lock.yml
index eb75d67756..27af17d817 100644
--- a/.github/workflows/copilot-token-optimizer.lock.yml
+++ b/.github/workflows/copilot-token-optimizer.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -733,8 +733,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml
index 4b9fe9fdd5..aa5d8b1846 100644
--- a/.github/workflows/craft.lock.yml
+++ b/.github/workflows/craft.lock.yml
@@ -143,14 +143,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -729,8 +729,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml
index aab0631195..f4b88cd279 100644
--- a/.github/workflows/daily-architecture-diagram.lock.yml
+++ b/.github/workflows/daily-architecture-diagram.lock.yml
@@ -143,14 +143,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -746,8 +746,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml
index 5d0c31813f..38ee0f69c4 100644
--- a/.github/workflows/daily-assign-issue-to-user.lock.yml
+++ b/.github/workflows/daily-assign-issue-to-user.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -687,8 +687,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml
index 216d632c5f..82bafb3df5 100644
--- a/.github/workflows/daily-choice-test.lock.yml
+++ b/.github/workflows/daily-choice-test.lock.yml
@@ -146,14 +146,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -678,8 +678,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml
index 512a690b22..1c0af34e77 100644
--- a/.github/workflows/daily-cli-performance.lock.yml
+++ b/.github/workflows/daily-cli-performance.lock.yml
@@ -169,14 +169,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -907,8 +907,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml
index 391f36ed9d..aceea8afea 100644
--- a/.github/workflows/daily-cli-tools-tester.lock.yml
+++ b/.github/workflows/daily-cli-tools-tester.lock.yml
@@ -150,14 +150,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -770,8 +770,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml
index 9488780c7c..acc90db315 100644
--- a/.github/workflows/daily-code-metrics.lock.yml
+++ b/.github/workflows/daily-code-metrics.lock.yml
@@ -154,14 +154,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -767,8 +767,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml
index efdce75d3e..daca4555df 100644
--- a/.github/workflows/daily-community-attribution.lock.yml
+++ b/.github/workflows/daily-community-attribution.lock.yml
@@ -147,14 +147,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -731,8 +731,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml
index 0c1c63da9d..7cc8b30a97 100644
--- a/.github/workflows/daily-compiler-quality.lock.yml
+++ b/.github/workflows/daily-compiler-quality.lock.yml
@@ -147,14 +147,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -768,8 +768,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml
index 5eafaab836..84e8c33427 100644
--- a/.github/workflows/daily-doc-healer.lock.yml
+++ b/.github/workflows/daily-doc-healer.lock.yml
@@ -152,14 +152,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -752,8 +752,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml
index 3d97f9a895..4ed0579f02 100644
--- a/.github/workflows/daily-doc-updater.lock.yml
+++ b/.github/workflows/daily-doc-updater.lock.yml
@@ -150,14 +150,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -714,8 +714,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml
index 72796dd4c4..eb7ce6e05f 100644
--- a/.github/workflows/daily-fact.lock.yml
+++ b/.github/workflows/daily-fact.lock.yml
@@ -154,14 +154,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -880,8 +880,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml
index b3ee1ede60..4f017a1e48 100644
--- a/.github/workflows/daily-file-diet.lock.yml
+++ b/.github/workflows/daily-file-diet.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -759,8 +759,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml
index f264fe4bf9..89c949e80b 100644
--- a/.github/workflows/daily-firewall-report.lock.yml
+++ b/.github/workflows/daily-firewall-report.lock.yml
@@ -155,14 +155,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -824,8 +824,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml
index d2de52d60c..c00d2f4e52 100644
--- a/.github/workflows/daily-function-namer.lock.yml
+++ b/.github/workflows/daily-function-namer.lock.yml
@@ -153,14 +153,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -775,8 +775,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-hippo-learn.lock.yml b/.github/workflows/daily-hippo-learn.lock.yml
index 7ec0ab7442..16aa9d1fa2 100644
--- a/.github/workflows/daily-hippo-learn.lock.yml
+++ b/.github/workflows/daily-hippo-learn.lock.yml
@@ -133,14 +133,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -805,8 +805,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-integrity-analysis.lock.yml b/.github/workflows/daily-integrity-analysis.lock.yml
index d8498a4719..5ae8aa6c2f 100644
--- a/.github/workflows/daily-integrity-analysis.lock.yml
+++ b/.github/workflows/daily-integrity-analysis.lock.yml
@@ -155,14 +155,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -841,8 +841,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml
index dee2b7d223..475c264683 100644
--- a/.github/workflows/daily-issues-report.lock.yml
+++ b/.github/workflows/daily-issues-report.lock.yml
@@ -161,14 +161,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -942,8 +942,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml
index 7bec6419ae..f65c1f3371 100644
--- a/.github/workflows/daily-malicious-code-scan.lock.yml
+++ b/.github/workflows/daily-malicious-code-scan.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -691,8 +691,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml
index 7d6bd25b5d..902c7bb5ba 100644
--- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml
+++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml
@@ -146,14 +146,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -790,8 +790,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml
index c470f5166e..f67bdc5242 100644
--- a/.github/workflows/daily-multi-device-docs-tester.lock.yml
+++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml
@@ -154,14 +154,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -735,8 +735,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml
index 2fbd853c92..1a44555ee0 100644
--- a/.github/workflows/daily-news.lock.yml
+++ b/.github/workflows/daily-news.lock.yml
@@ -150,14 +150,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -872,8 +872,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml
index 252b7da311..f3b20f1c8a 100644
--- a/.github/workflows/daily-observability-report.lock.yml
+++ b/.github/workflows/daily-observability-report.lock.yml
@@ -157,14 +157,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -808,8 +808,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml
index 714b941867..4b13ae468b 100644
--- a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml
+++ b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -713,8 +713,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml
index b48aeb6d9b..463f7861d5 100644
--- a/.github/workflows/daily-performance-summary.lock.yml
+++ b/.github/workflows/daily-performance-summary.lock.yml
@@ -153,14 +153,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1220,8 +1220,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml
index 8b7d278538..590e946213 100644
--- a/.github/workflows/daily-regulatory.lock.yml
+++ b/.github/workflows/daily-regulatory.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1159,8 +1159,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
index 9390b6c1f4..9b506b56f4 100644
--- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml
+++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
@@ -159,14 +159,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -806,8 +806,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-rendering-scripts-verifier.md b/.github/workflows/daily-rendering-scripts-verifier.md
index 543a4333b9..f41d822350 100644
--- a/.github/workflows/daily-rendering-scripts-verifier.md
+++ b/.github/workflows/daily-rendering-scripts-verifier.md
@@ -117,7 +117,7 @@ find "$RUN_DIR" -type f | head -30
```
From `aw_info.json` identify:
-- **Engine**: `copilot`, `claude`, `codex`, `gemini`, `opencode`, or `custom`
+- **Engine**: `copilot`, `claude`, `codex`, `gemini`, `crush`, or `custom`
- **Agent output file**: look for `agent-stdio.log` in the run directory or files inside `agent_output/`
Determine `AGENT_OUTPUT_FILE` and `ENGINE` for the next phase.
@@ -210,7 +210,7 @@ Run the parser harness against the real agent output:
```bash
# Replace these with the actual values discovered in Phase 2:
-# ENGINE: one of copilot, claude, codex, gemini, opencode, custom
+# ENGINE: one of copilot, claude, codex, gemini, crush, custom
# AGENT_OUTPUT_FILE: e.g. /tmp/gh-aw/aw-mcp/logs/run-12345678/agent-stdio.log
cd ${{ github.workspace }}/actions/setup/js
diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml
index feab540f15..be6dafe8b6 100644
--- a/.github/workflows/daily-repo-chronicle.lock.yml
+++ b/.github/workflows/daily-repo-chronicle.lock.yml
@@ -145,14 +145,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -741,8 +741,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml
index bb2cd06ef1..6d643d161b 100644
--- a/.github/workflows/daily-safe-output-integrator.lock.yml
+++ b/.github/workflows/daily-safe-output-integrator.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -690,8 +690,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml
index fdd290928b..4e7a75ffbc 100644
--- a/.github/workflows/daily-safe-output-optimizer.lock.yml
+++ b/.github/workflows/daily-safe-output-optimizer.lock.yml
@@ -160,14 +160,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -809,8 +809,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml
index e3b11c4a42..8210e2a66a 100644
--- a/.github/workflows/daily-safe-outputs-conformance.lock.yml
+++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml
@@ -148,14 +148,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -686,8 +686,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml
index 3f57ac4ffc..9300c8d2d1 100644
--- a/.github/workflows/daily-secrets-analysis.lock.yml
+++ b/.github/workflows/daily-secrets-analysis.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -677,8 +677,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml
index 867bbe2043..0d595a5a13 100644
--- a/.github/workflows/daily-security-red-team.lock.yml
+++ b/.github/workflows/daily-security-red-team.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -694,8 +694,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml
index 9536a01001..b4361b2800 100644
--- a/.github/workflows/daily-semgrep-scan.lock.yml
+++ b/.github/workflows/daily-semgrep-scan.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -712,8 +712,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml
index 61d900d554..520ee31d95 100644
--- a/.github/workflows/daily-syntax-error-quality.lock.yml
+++ b/.github/workflows/daily-syntax-error-quality.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -694,8 +694,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml
index 3297e77c6c..be046975c6 100644
--- a/.github/workflows/daily-team-evolution-insights.lock.yml
+++ b/.github/workflows/daily-team-evolution-insights.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -682,8 +682,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml
index 077e52372e..1795764c8b 100644
--- a/.github/workflows/daily-team-status.lock.yml
+++ b/.github/workflows/daily-team-status.lock.yml
@@ -157,14 +157,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -699,8 +699,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml
index 1e2fbd0ca7..706cdd9c74 100644
--- a/.github/workflows/daily-testify-uber-super-expert.lock.yml
+++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -783,8 +783,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml
index 2d859da247..07913dade6 100644
--- a/.github/workflows/daily-workflow-updater.lock.yml
+++ b/.github/workflows/daily-workflow-updater.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -684,8 +684,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml
index 247d8bfa64..9eac24e235 100644
--- a/.github/workflows/dead-code-remover.lock.yml
+++ b/.github/workflows/dead-code-remover.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -714,8 +714,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml
index 8947f84e3b..2eddfbfe0f 100644
--- a/.github/workflows/deep-report.lock.yml
+++ b/.github/workflows/deep-report.lock.yml
@@ -145,14 +145,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -849,8 +849,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml
index 02ac8ccfb9..9b67ec6b63 100644
--- a/.github/workflows/delight.lock.yml
+++ b/.github/workflows/delight.lock.yml
@@ -132,14 +132,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -721,8 +721,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml
index 5f692c875a..dd99cb96ea 100644
--- a/.github/workflows/dependabot-burner.lock.yml
+++ b/.github/workflows/dependabot-burner.lock.yml
@@ -138,14 +138,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -670,8 +670,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml
index 05ecf273e9..fed515739d 100644
--- a/.github/workflows/dependabot-go-checker.lock.yml
+++ b/.github/workflows/dependabot-go-checker.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -687,8 +687,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/design-decision-gate.lock.yml b/.github/workflows/design-decision-gate.lock.yml
index 9d6572df3f..dc47993eca 100644
--- a/.github/workflows/design-decision-gate.lock.yml
+++ b/.github/workflows/design-decision-gate.lock.yml
@@ -154,14 +154,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -725,8 +725,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml
index da28f3c9c3..350506cb4f 100644
--- a/.github/workflows/dev-hawk.lock.yml
+++ b/.github/workflows/dev-hawk.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -761,8 +761,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml
index acbb3ef5d3..a8aea96207 100644
--- a/.github/workflows/dev.lock.yml
+++ b/.github/workflows/dev.lock.yml
@@ -162,14 +162,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -715,8 +715,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml
index 4528a8b727..ba33131149 100644
--- a/.github/workflows/developer-docs-consolidator.lock.yml
+++ b/.github/workflows/developer-docs-consolidator.lock.yml
@@ -144,14 +144,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -812,8 +812,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml
index a63e09996d..bf93719fc3 100644
--- a/.github/workflows/dictation-prompt.lock.yml
+++ b/.github/workflows/dictation-prompt.lock.yml
@@ -130,14 +130,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -667,8 +667,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml
index e880e0ec2c..54b42b84b2 100644
--- a/.github/workflows/discussion-task-miner.lock.yml
+++ b/.github/workflows/discussion-task-miner.lock.yml
@@ -132,14 +132,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -715,8 +715,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml
index 7c957165d4..b601bcd706 100644
--- a/.github/workflows/docs-noob-tester.lock.yml
+++ b/.github/workflows/docs-noob-tester.lock.yml
@@ -134,14 +134,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -703,8 +703,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml
index 21c6ccb84d..000f043432 100644
--- a/.github/workflows/draft-pr-cleanup.lock.yml
+++ b/.github/workflows/draft-pr-cleanup.lock.yml
@@ -125,14 +125,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -684,8 +684,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml
index 7d484b9147..e48e874501 100644
--- a/.github/workflows/duplicate-code-detector.lock.yml
+++ b/.github/workflows/duplicate-code-detector.lock.yml
@@ -144,14 +144,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -784,8 +784,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml
index 2042581dee..a3ba0b6f4e 100644
--- a/.github/workflows/example-permissions-warning.lock.yml
+++ b/.github/workflows/example-permissions-warning.lock.yml
@@ -128,14 +128,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -424,8 +424,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml
index 43e87da5d5..191420c713 100644
--- a/.github/workflows/example-workflow-analyzer.lock.yml
+++ b/.github/workflows/example-workflow-analyzer.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -738,8 +738,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml
index 043ae2524a..39392d2929 100644
--- a/.github/workflows/firewall-escape.lock.yml
+++ b/.github/workflows/firewall-escape.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -722,8 +722,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml
index dd9f970d74..eac7ac4251 100644
--- a/.github/workflows/firewall.lock.yml
+++ b/.github/workflows/firewall.lock.yml
@@ -128,14 +128,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -426,8 +426,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml
index 0d2b0e7b4f..35893f3838 100644
--- a/.github/workflows/functional-pragmatist.lock.yml
+++ b/.github/workflows/functional-pragmatist.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -674,8 +674,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml
index cd779ad1c0..25aa07827d 100644
--- a/.github/workflows/github-mcp-structural-analysis.lock.yml
+++ b/.github/workflows/github-mcp-structural-analysis.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -726,8 +726,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml
index bce32b4832..34da425a57 100644
--- a/.github/workflows/github-mcp-tools-report.lock.yml
+++ b/.github/workflows/github-mcp-tools-report.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -726,8 +726,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml
index 32e0db50b2..dc69809116 100644
--- a/.github/workflows/github-remote-mcp-auth-test.lock.yml
+++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -672,8 +672,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml
index 142f2eb2c9..652480bedc 100644
--- a/.github/workflows/glossary-maintainer.lock.yml
+++ b/.github/workflows/glossary-maintainer.lock.yml
@@ -143,14 +143,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -807,8 +807,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml
index 91916dab7c..c541fca637 100644
--- a/.github/workflows/go-fan.lock.yml
+++ b/.github/workflows/go-fan.lock.yml
@@ -144,14 +144,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -751,8 +751,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml
index aeea764a99..b02a7a09f7 100644
--- a/.github/workflows/go-logger.lock.yml
+++ b/.github/workflows/go-logger.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -853,8 +853,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml
index 707b197b9d..f4733b2f23 100644
--- a/.github/workflows/go-pattern-detector.lock.yml
+++ b/.github/workflows/go-pattern-detector.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -692,8 +692,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml
index e4a53d34f4..70e4d73032 100644
--- a/.github/workflows/gpclean.lock.yml
+++ b/.github/workflows/gpclean.lock.yml
@@ -138,14 +138,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -696,8 +696,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml
index 3cfbfcfb5b..ed9514dc26 100644
--- a/.github/workflows/grumpy-reviewer.lock.yml
+++ b/.github/workflows/grumpy-reviewer.lock.yml
@@ -166,14 +166,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -803,8 +803,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml
index cd9e8b42af..a70a38e56a 100644
--- a/.github/workflows/hourly-ci-cleaner.lock.yml
+++ b/.github/workflows/hourly-ci-cleaner.lock.yml
@@ -138,14 +138,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -719,8 +719,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml
index 41efcc0393..805547d7f1 100644
--- a/.github/workflows/instructions-janitor.lock.yml
+++ b/.github/workflows/instructions-janitor.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -690,8 +690,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml
index f51dc4e608..6da773297b 100644
--- a/.github/workflows/issue-arborist.lock.yml
+++ b/.github/workflows/issue-arborist.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -815,8 +815,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml
index 96bb92b0d5..8d7181d7ea 100644
--- a/.github/workflows/issue-monster.lock.yml
+++ b/.github/workflows/issue-monster.lock.yml
@@ -503,14 +503,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1061,8 +1061,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml
index 6d34e35959..6ee2761625 100644
--- a/.github/workflows/issue-triage-agent.lock.yml
+++ b/.github/workflows/issue-triage-agent.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml
index add4ef8563..6d1e0289d6 100644
--- a/.github/workflows/jsweep.lock.yml
+++ b/.github/workflows/jsweep.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -773,8 +773,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml
index 5da5cbcbd6..61100053b7 100644
--- a/.github/workflows/layout-spec-maintainer.lock.yml
+++ b/.github/workflows/layout-spec-maintainer.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -678,8 +678,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml
index b674ee529d..7dcbc80b60 100644
--- a/.github/workflows/lockfile-stats.lock.yml
+++ b/.github/workflows/lockfile-stats.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -683,8 +683,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml
index 2a1b1f9670..f73d20f1e5 100644
--- a/.github/workflows/mcp-inspector.lock.yml
+++ b/.github/workflows/mcp-inspector.lock.yml
@@ -183,14 +183,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1211,8 +1211,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml
index 36d66c0f03..a5ca21cd83 100644
--- a/.github/workflows/mergefest.lock.yml
+++ b/.github/workflows/mergefest.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -704,8 +704,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml
index 9197dfde0e..e41220b2e0 100644
--- a/.github/workflows/metrics-collector.lock.yml
+++ b/.github/workflows/metrics-collector.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -558,8 +558,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml
index 0f9405ef3f..c478159e3d 100644
--- a/.github/workflows/notion-issue-summary.lock.yml
+++ b/.github/workflows/notion-issue-summary.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -677,8 +677,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml
index 546908bab8..d60936f73b 100644
--- a/.github/workflows/org-health-report.lock.yml
+++ b/.github/workflows/org-health-report.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -730,8 +730,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml
index 9d100a8ff2..ffeba64b79 100644
--- a/.github/workflows/pdf-summary.lock.yml
+++ b/.github/workflows/pdf-summary.lock.yml
@@ -177,14 +177,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -811,8 +811,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml
index b6b139ebec..c57a91713d 100644
--- a/.github/workflows/plan.lock.yml
+++ b/.github/workflows/plan.lock.yml
@@ -153,14 +153,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -745,8 +745,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml
index 6ffdfdf973..2e2ab08483 100644
--- a/.github/workflows/poem-bot.lock.yml
+++ b/.github/workflows/poem-bot.lock.yml
@@ -170,14 +170,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1044,8 +1044,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml
index ee9804a265..93e71c8854 100644
--- a/.github/workflows/portfolio-analyst.lock.yml
+++ b/.github/workflows/portfolio-analyst.lock.yml
@@ -145,14 +145,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -824,8 +824,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml
index baea624270..78d4ddee60 100644
--- a/.github/workflows/pr-nitpick-reviewer.lock.yml
+++ b/.github/workflows/pr-nitpick-reviewer.lock.yml
@@ -160,14 +160,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -800,8 +800,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml
index 4227037464..bbc3748fba 100644
--- a/.github/workflows/pr-triage-agent.lock.yml
+++ b/.github/workflows/pr-triage-agent.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -734,8 +734,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml
index 5774029774..c90c61dc16 100644
--- a/.github/workflows/prompt-clustering-analysis.lock.yml
+++ b/.github/workflows/prompt-clustering-analysis.lock.yml
@@ -151,14 +151,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -837,8 +837,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml
index d40afc0f49..8974be3db1 100644
--- a/.github/workflows/python-data-charts.lock.yml
+++ b/.github/workflows/python-data-charts.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -803,8 +803,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml
index 63b7671001..4ce9dcaf0a 100644
--- a/.github/workflows/q.lock.yml
+++ b/.github/workflows/q.lock.yml
@@ -188,14 +188,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -970,8 +970,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/refactoring-cadence.lock.yml b/.github/workflows/refactoring-cadence.lock.yml
index 40275ba435..909190c5a6 100644
--- a/.github/workflows/refactoring-cadence.lock.yml
+++ b/.github/workflows/refactoring-cadence.lock.yml
@@ -131,14 +131,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -687,8 +687,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml
index f07681d1e7..5a99676ae6 100644
--- a/.github/workflows/refiner.lock.yml
+++ b/.github/workflows/refiner.lock.yml
@@ -153,14 +153,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -727,8 +727,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml
index 70511ebd82..6216936e6b 100644
--- a/.github/workflows/release.lock.yml
+++ b/.github/workflows/release.lock.yml
@@ -154,14 +154,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -692,8 +692,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml
index 257d15392a..161af27b4f 100644
--- a/.github/workflows/repo-audit-analyzer.lock.yml
+++ b/.github/workflows/repo-audit-analyzer.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -690,8 +690,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml
index 2d555267c6..a136a990b6 100644
--- a/.github/workflows/repo-tree-map.lock.yml
+++ b/.github/workflows/repo-tree-map.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -659,8 +659,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml
index 281605e0cb..ff8a8db6ed 100644
--- a/.github/workflows/repository-quality-improver.lock.yml
+++ b/.github/workflows/repository-quality-improver.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -754,8 +754,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml
index 902378c8ad..222447b701 100644
--- a/.github/workflows/research.lock.yml
+++ b/.github/workflows/research.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -690,8 +690,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml
index 02364844e4..6649e2738f 100644
--- a/.github/workflows/safe-output-health.lock.yml
+++ b/.github/workflows/safe-output-health.lock.yml
@@ -145,14 +145,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -753,8 +753,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml
index 53c22a2445..592ddd95b0 100644
--- a/.github/workflows/schema-consistency-checker.lock.yml
+++ b/.github/workflows/schema-consistency-checker.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -663,8 +663,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml
index 74a9ad3848..6477aee981 100644
--- a/.github/workflows/schema-feature-coverage.lock.yml
+++ b/.github/workflows/schema-feature-coverage.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -704,8 +704,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml
index 78a3031b4d..8ba7782f0d 100644
--- a/.github/workflows/scout.lock.yml
+++ b/.github/workflows/scout.lock.yml
@@ -210,14 +210,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -885,8 +885,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml
index b589329199..fff090f077 100644
--- a/.github/workflows/security-compliance.lock.yml
+++ b/.github/workflows/security-compliance.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -684,8 +684,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml
index 8deea6502b..731acfd4f9 100644
--- a/.github/workflows/security-review.lock.yml
+++ b/.github/workflows/security-review.lock.yml
@@ -156,14 +156,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -849,8 +849,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml
index 2d82a00ea4..4b00afbb68 100644
--- a/.github/workflows/semantic-function-refactor.lock.yml
+++ b/.github/workflows/semantic-function-refactor.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -729,8 +729,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml
index 015438e34d..b2b05f42bf 100644
--- a/.github/workflows/sergo.lock.yml
+++ b/.github/workflows/sergo.lock.yml
@@ -143,14 +143,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -762,8 +762,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml
index 4ff83fae16..968300d6e2 100644
--- a/.github/workflows/slide-deck-maintainer.lock.yml
+++ b/.github/workflows/slide-deck-maintainer.lock.yml
@@ -149,14 +149,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -750,8 +750,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml
index c783d4ce11..42dbcea261 100644
--- a/.github/workflows/smoke-agent-all-merged.lock.yml
+++ b/.github/workflows/smoke-agent-all-merged.lock.yml
@@ -159,14 +159,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -685,8 +685,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml
index 00345afb73..776dab8c77 100644
--- a/.github/workflows/smoke-agent-all-none.lock.yml
+++ b/.github/workflows/smoke-agent-all-none.lock.yml
@@ -159,14 +159,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -685,8 +685,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml
index f639254b04..0355a5514e 100644
--- a/.github/workflows/smoke-agent-public-approved.lock.yml
+++ b/.github/workflows/smoke-agent-public-approved.lock.yml
@@ -161,14 +161,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -734,8 +734,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml
index 38980bf89a..30bd2a2ada 100644
--- a/.github/workflows/smoke-agent-public-none.lock.yml
+++ b/.github/workflows/smoke-agent-public-none.lock.yml
@@ -159,14 +159,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -685,8 +685,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml
index 9426896e98..89303a9cff 100644
--- a/.github/workflows/smoke-agent-scoped-approved.lock.yml
+++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml
@@ -160,14 +160,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -692,8 +692,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml
index af54a71097..4cc5bd8b02 100644
--- a/.github/workflows/smoke-call-workflow.lock.yml
+++ b/.github/workflows/smoke-call-workflow.lock.yml
@@ -159,14 +159,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -718,8 +718,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml
index 9dcba9c23d..0ac1c75cfa 100644
--- a/.github/workflows/smoke-claude.lock.yml
+++ b/.github/workflows/smoke-claude.lock.yml
@@ -186,14 +186,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -2148,8 +2148,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml
index 50786d6af3..f921ad3828 100644
--- a/.github/workflows/smoke-codex.lock.yml
+++ b/.github/workflows/smoke-codex.lock.yml
@@ -186,14 +186,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1180,8 +1180,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml
index e4afd610a6..f85b970df2 100644
--- a/.github/workflows/smoke-copilot-arm.lock.yml
+++ b/.github/workflows/smoke-copilot-arm.lock.yml
@@ -185,14 +185,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1644,8 +1644,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml
index 8d1e16ab97..3831588e96 100644
--- a/.github/workflows/smoke-copilot.lock.yml
+++ b/.github/workflows/smoke-copilot.lock.yml
@@ -176,14 +176,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -1674,8 +1674,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml
index b573a1c6cc..44e22bb991 100644
--- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml
@@ -153,14 +153,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -775,8 +775,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-crush.lock.yml
similarity index 88%
rename from .github/workflows/smoke-opencode.lock.yml
rename to .github/workflows/smoke-crush.lock.yml
index a7d0a3e64c..d2b2fd20fb 100644
--- a/.github/workflows/smoke-opencode.lock.yml
+++ b/.github/workflows/smoke-crush.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8c16720a07621b350b694451b5483dbfed776ae5878cc075c2f54e738be087af","strict":true,"agent_id":"opencode","agent_model":"anthropic/claude-sonnet-4-20250514"}
+# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"829d6508945d2851e941dbf4412159d86a70723dc05086c57591b892611e5a4c","strict":true,"agent_id":"crush","agent_model":"anthropic/claude-sonnet-4-20250514"}
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/setup-node","sha":"53b83947a5a98c8d113130e565377fae1a50d02f","version":"v6.3.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.23"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.23"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.23"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.2.22"},{"image":"ghcr.io/github/github-mcp-server:v0.32.0","digest":"sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28","pinned_image":"ghcr.io/github/github-mcp-server:v0.32.0@sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28"},{"image":"node:lts-alpine","digest":"sha256:01743339035a5c3c11a373cd7c83aeab6ed1457b55da6a69e014a95ac4e4700b","pinned_image":"node:lts-alpine@sha256:01743339035a5c3c11a373cd7c83aeab6ed1457b55da6a69e014a95ac4e4700b"}]}
# ___ _ _
# / _ \ | | (_)
@@ -22,7 +22,7 @@
#
# For more information: https://github.github.com/gh-aw/introduction/overview/
#
-# Smoke test workflow that validates OpenCode engine functionality
+# Smoke test workflow that validates Crush engine functionality
#
# Resolved workflow manifest:
# Imports:
@@ -50,7 +50,7 @@
# - ghcr.io/github/github-mcp-server:v0.32.0@sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28
# - node:lts-alpine@sha256:01743339035a5c3c11a373cd7c83aeab6ed1457b55da6a69e014a95ac4e4700b
-name: "Smoke OpenCode"
+name: "Smoke Crush"
"on":
pull_request:
# names: # Label filtering applied via job conditions
@@ -71,7 +71,7 @@ concurrency:
group: "gh-aw-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref || github.run_id }}"
cancel-in-progress: true
-run-name: "Smoke OpenCode"
+run-name: "Smoke Crush"
jobs:
activation:
@@ -115,12 +115,12 @@ jobs:
- name: Generate agentic run info
id: generate_aw_info
env:
- GH_AW_INFO_ENGINE_ID: "opencode"
- GH_AW_INFO_ENGINE_NAME: "OpenCode"
+ GH_AW_INFO_ENGINE_ID: "crush"
+ GH_AW_INFO_ENGINE_NAME: "Crush"
GH_AW_INFO_MODEL: "anthropic/claude-sonnet-4-20250514"
- GH_AW_INFO_VERSION: ""
- GH_AW_INFO_AGENT_VERSION: ""
- GH_AW_INFO_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_INFO_VERSION: "0.59.0"
+ GH_AW_INFO_AGENT_VERSION: "0.59.0"
+ GH_AW_INFO_WORKFLOW_NAME: "Smoke Crush"
GH_AW_INFO_EXPERIMENTAL: "true"
GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "false"
GH_AW_INFO_STAGED: "false"
@@ -152,7 +152,7 @@ jobs:
await main();
- name: Validate COPILOT_GITHUB_TOKEN secret
id: validate-secret
- run: bash "${RUNNER_TEMP}/gh-aw/actions/validate_multi_secret.sh" COPILOT_GITHUB_TOKEN 'OpenCode CLI' https://github.github.com/gh-aw/reference/engines/#opencode
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/validate_multi_secret.sh" COPILOT_GITHUB_TOKEN 'Crush CLI' https://github.github.com/gh-aw/reference/engines/#crush
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
- name: Checkout .github and .agents folders
@@ -165,21 +165,21 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
id: check-lock-file
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
- GH_AW_WORKFLOW_FILE: "smoke-opencode.lock.yml"
+ GH_AW_WORKFLOW_FILE: "smoke-crush.lock.yml"
GH_AW_CONTEXT_WORKFLOW_REF: "${{ github.workflow_ref }}"
with:
script: |
@@ -201,8 +201,8 @@ jobs:
if: github.event_name == 'issues' || github.event_name == 'issue_comment' || github.event_name == 'pull_request_review_comment' || github.event_name == 'discussion' || github.event_name == 'discussion_comment' || github.event_name == 'pull_request' && github.event.pull_request.head.repo.id == github.repository_id
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
- GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by OpenCode*\",\"runStarted\":\"⚡ OpenCode initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** OpenCode has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. OpenCode encountered unexpected challenges...\"}"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
+ GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by Crush*\",\"runStarted\":\"⚡ Crush initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** Crush has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. Crush encountered unexpected challenges...\"}"
with:
script: |
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
@@ -225,14 +225,14 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_e892de807d8c5a5a_EOF'
+ cat << 'GH_AW_PROMPT_b4fa4429d3aa72ae_EOF'
- GH_AW_PROMPT_e892de807d8c5a5a_EOF
+ GH_AW_PROMPT_b4fa4429d3aa72ae_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_e892de807d8c5a5a_EOF'
+ cat << 'GH_AW_PROMPT_b4fa4429d3aa72ae_EOF'
Tools: add_comment(max:2), create_issue, add_labels, missing_tool, missing_data, noop
@@ -264,14 +264,14 @@ jobs:
{{/if}}
- GH_AW_PROMPT_e892de807d8c5a5a_EOF
+ GH_AW_PROMPT_b4fa4429d3aa72ae_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_e892de807d8c5a5a_EOF'
+ cat << 'GH_AW_PROMPT_b4fa4429d3aa72ae_EOF'
{{#runtime-import .github/workflows/shared/gh.md}}
{{#runtime-import .github/workflows/shared/reporting.md}}
- {{#runtime-import .github/workflows/smoke-opencode.md}}
- GH_AW_PROMPT_e892de807d8c5a5a_EOF
+ {{#runtime-import .github/workflows/smoke-crush.md}}
+ GH_AW_PROMPT_b4fa4429d3aa72ae_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -356,7 +356,7 @@ jobs:
GH_AW_ASSETS_BRANCH: ""
GH_AW_ASSETS_MAX_SIZE_KB: 0
GH_AW_MCP_LOG_DIR: /tmp/gh-aw/mcp-logs/safeoutputs
- GH_AW_WORKFLOW_ID_SANITIZED: smokeopencode
+ GH_AW_WORKFLOW_ID_SANITIZED: smokecrush
outputs:
checkout_pr_success: ${{ steps.checkout-pr.outputs.checkout_pr_success || 'true' }}
effective_tokens: ${{ steps.parse-mcp-gateway.outputs.effective_tokens }}
@@ -432,8 +432,8 @@ jobs:
package-manager-cache: false
- name: Install AWF binary
run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.23
- - name: Install OpenCode CLI
- run: npm install --ignore-scripts -g opencode-ai@1.2.14
+ - name: Install Crush CLI
+ run: npm install --ignore-scripts -g @charmland/crush@0.59.0
- name: Determine automatic lockdown mode for GitHub MCP Server
id: determine-automatic-lockdown
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -451,16 +451,16 @@ 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_3f2537082973881b_EOF'
- {"add_comment":{"hide_older_comments":true,"max":2},"add_labels":{"allowed":["smoke-opencode"]},"create_issue":{"close_older_issues":true,"expires":2,"labels":["automation","testing"],"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
- GH_AW_SAFE_OUTPUTS_CONFIG_3f2537082973881b_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_54d6fc53111917b1_EOF'
+ {"add_comment":{"hide_older_comments":true,"max":2},"add_labels":{"allowed":["smoke-crush"]},"create_issue":{"close_older_issues":true,"expires":2,"labels":["automation","testing"],"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
+ GH_AW_SAFE_OUTPUTS_CONFIG_54d6fc53111917b1_EOF
- name: Write Safe Outputs Tools
env:
GH_AW_TOOLS_META_JSON: |
{
"description_suffixes": {
"add_comment": " CONSTRAINTS: Maximum 2 comment(s) can be added. Supports reply_to_id for discussion threading.",
- "add_labels": " CONSTRAINTS: Only these labels are allowed: [\"smoke-opencode\"].",
+ "add_labels": " CONSTRAINTS: Only these labels are allowed: [\"smoke-crush\"].",
"create_issue": " CONSTRAINTS: Maximum 1 issue(s) can be created. Labels [\"automation\" \"testing\"] will be automatically added."
},
"repo_params": {},
@@ -666,7 +666,7 @@ jobs:
- name: Write MCP Scripts Config
run: |
mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs"
- cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_02ace79f29a9a6e7_EOF'
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_a3ccdd4af38e2399_EOF'
{
"serverName": "mcpscripts",
"version": "1.0.0",
@@ -696,8 +696,8 @@ jobs:
}
]
}
- GH_AW_MCP_SCRIPTS_TOOLS_02ace79f29a9a6e7_EOF
- cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_c3f6da6707f0fed0_EOF'
+ GH_AW_MCP_SCRIPTS_TOOLS_a3ccdd4af38e2399_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_f837dcdec1977a32_EOF'
const path = require("path");
const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs");
const configPath = path.join(__dirname, "tools.json");
@@ -711,12 +711,12 @@ jobs:
console.error("Failed to start mcp-scripts HTTP server:", error);
process.exit(1);
});
- GH_AW_MCP_SCRIPTS_SERVER_c3f6da6707f0fed0_EOF
+ GH_AW_MCP_SCRIPTS_SERVER_f837dcdec1977a32_EOF
chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs"
- name: Write MCP Scripts Tool Files
run: |
- cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" << 'GH_AW_MCP_SCRIPTS_SH_GH_e1309c6352e894f9_EOF'
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" << 'GH_AW_MCP_SCRIPTS_SH_GH_1f648c9806c8ad9c_EOF'
#!/bin/bash
# Auto-generated mcp-script tool: gh
# Execute any gh CLI command. This tool is accessible as 'mcpscripts-gh'. Provide the full command after 'gh' (e.g., args: 'pr list --limit 5'). The tool will run: gh . Use single quotes ' for complex args to avoid shell interpretation issues.
@@ -727,7 +727,7 @@ jobs:
echo " token: ${GH_AW_GH_TOKEN:0:6}..."
GH_TOKEN="$GH_AW_GH_TOKEN" gh $INPUT_ARGS
- GH_AW_MCP_SCRIPTS_SH_GH_e1309c6352e894f9_EOF
+ GH_AW_MCP_SCRIPTS_SH_GH_1f648c9806c8ad9c_EOF
chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh"
- name: Generate MCP Scripts Server Config
@@ -792,12 +792,12 @@ jobs:
export MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD="524288"
export DEBUG="*"
- export GH_AW_ENGINE="opencode"
+ export GH_AW_ENGINE="crush"
DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0')
export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_MCP_SCRIPTS_PORT -e GH_AW_MCP_SCRIPTS_API_KEY -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GH_AW_GH_TOKEN -e GH_DEBUG -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.2.22'
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_0300eed717315ad4_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_0d8ac0c8a56cbcb7_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
"github": {
@@ -851,7 +851,7 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_0300eed717315ad4_EOF
+ GH_AW_MCP_CONFIG_0d8ac0c8a56cbcb7_EOF
- name: Download activation artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
@@ -860,17 +860,17 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
run: bash "${RUNNER_TEMP}/gh-aw/actions/clean_git_credentials.sh"
- - name: Write OpenCode configuration
+ - name: Write Crush configuration
run: |
umask 077
mkdir -p "$GITHUB_WORKSPACE"
- CONFIG="$GITHUB_WORKSPACE/opencode.jsonc"
+ CONFIG="$GITHUB_WORKSPACE/.crush.json"
BASE_CONFIG='{"agent":{"build":{"permissions":{"bash":"allow","edit":"allow","read":"allow","glob":"allow","grep":"allow","write":"allow","webfetch":"allow","websearch":"allow"}}}}'
if [ -f "$CONFIG" ]; then
MERGED=$(jq -n --argjson base "$BASE_CONFIG" --argjson existing "$(cat "$CONFIG")" '$existing * $base')
@@ -879,23 +879,23 @@ jobs:
echo "$BASE_CONFIG" > "$CONFIG"
fi
chmod 600 "$CONFIG"
- - name: Execute OpenCode CLI
+ - name: Execute Crush CLI
id: agentic_execution
run: |
set -o pipefail
(umask 177 && touch /tmp/gh-aw/agent-stdio.log)
# shellcheck disable=SC1003
- sudo -E awf --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --allow-domains '*.githubusercontent.com,api.anthropic.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,opencode.ai,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com' --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --image-tag 0.25.23 --skip-pull --enable-api-proxy \
- -- /bin/bash -c 'export PATH="$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && opencode run --print-logs --log-level DEBUG "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
+ sudo -E awf --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --allow-domains '*.githubusercontent.com,api.anthropic.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,charm.land,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com' --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --image-tag 0.25.23 --skip-pull --enable-api-proxy \
+ -- /bin/bash -c 'export PATH="$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && crush run --verbose "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
env:
- GH_AW_MCP_CONFIG: ${{ github.workspace }}/opencode.jsonc
+ CRUSH_MODEL: anthropic/claude-sonnet-4-20250514
+ GH_AW_MCP_CONFIG: ${{ github.workspace }}/.crush.json
GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
GITHUB_WORKSPACE: ${{ github.workspace }}
NO_PROXY: localhost,127.0.0.1
OPENAI_API_KEY: ${{ secrets.COPILOT_GITHUB_TOKEN }}
OPENAI_BASE_URL: http://host.docker.internal:10004
- OPENCODE_MODEL: anthropic/claude-sonnet-4-20250514
- name: Configure Git credentials
env:
REPO_NAME: ${{ github.repository }}
@@ -949,7 +949,7 @@ jobs:
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
- GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.anthropic.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,opencode.ai,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
+ GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.anthropic.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,charm.land,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_API_URL: ${{ github.api_url }}
with:
@@ -1046,7 +1046,7 @@ jobs:
issues: write
pull-requests: write
concurrency:
- group: "gh-aw-conclusion-smoke-opencode"
+ group: "gh-aw-conclusion-smoke-crush"
cancel-in-progress: false
outputs:
incomplete_count: ${{ steps.report_incomplete.outputs.incomplete_count }}
@@ -1088,7 +1088,7 @@ jobs:
env:
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
GH_AW_NOOP_MAX: "1"
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
GH_AW_NOOP_REPORT_AS_ISSUE: "true"
@@ -1104,7 +1104,7 @@ jobs:
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GH_AW_DETECTION_CONCLUSION: ${{ needs.detection.outputs.detection_conclusion }}
GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
@@ -1121,7 +1121,7 @@ jobs:
env:
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
GH_AW_MISSING_TOOL_CREATE_ISSUE: "true"
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1135,7 +1135,7 @@ jobs:
env:
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
GH_AW_REPORT_INCOMPLETE_CREATE_ISSUE: "true"
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1149,17 +1149,17 @@ jobs:
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
- GH_AW_WORKFLOW_ID: "smoke-opencode"
+ GH_AW_WORKFLOW_ID: "smoke-crush"
GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS: "12"
- GH_AW_ENGINE_ID: "opencode"
+ GH_AW_ENGINE_ID: "crush"
GH_AW_SECRET_VERIFICATION_RESULT: ${{ needs.activation.outputs.secret_verification_result }}
GH_AW_CHECKOUT_PR_SUCCESS: ${{ needs.agent.outputs.checkout_pr_success }}
GH_AW_LOCKDOWN_CHECK_FAILED: ${{ needs.activation.outputs.lockdown_check_failed }}
GH_AW_STALE_LOCK_FILE_FAILED: ${{ needs.activation.outputs.stale_lock_file_failed }}
- GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by OpenCode*\",\"runStarted\":\"⚡ OpenCode initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** OpenCode has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. OpenCode encountered unexpected challenges...\"}"
+ GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by Crush*\",\"runStarted\":\"⚡ Crush initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** Crush has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. Crush encountered unexpected challenges...\"}"
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
@@ -1178,11 +1178,11 @@ jobs:
GH_AW_COMMENT_ID: ${{ needs.activation.outputs.comment_id }}
GH_AW_COMMENT_REPO: ${{ needs.activation.outputs.comment_repo }}
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
GH_AW_DETECTION_CONCLUSION: ${{ needs.detection.outputs.detection_conclusion }}
GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
- GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by OpenCode*\",\"runStarted\":\"⚡ OpenCode initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** OpenCode has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. OpenCode encountered unexpected challenges...\"}"
+ GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by Crush*\",\"runStarted\":\"⚡ Crush initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** Crush has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. Crush encountered unexpected challenges...\"}"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1283,8 +1283,8 @@ jobs:
if: always() && steps.detection_guard.outputs.run_detection == 'true'
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
- WORKFLOW_NAME: "Smoke OpenCode"
- WORKFLOW_DESCRIPTION: "Smoke test workflow that validates OpenCode engine functionality"
+ WORKFLOW_NAME: "Smoke Crush"
+ WORKFLOW_DESCRIPTION: "Smoke test workflow that validates Crush engine functionality"
HAS_PATCH: ${{ needs.agent.outputs.has_patch }}
with:
script: |
@@ -1304,14 +1304,14 @@ jobs:
package-manager-cache: false
- name: Install AWF binary
run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.23
- - name: Install OpenCode CLI
- run: npm install --ignore-scripts -g opencode-ai@1.2.14
- - name: Write OpenCode configuration
+ - name: Install Crush CLI
+ run: npm install --ignore-scripts -g @charmland/crush@0.59.0
+ - name: Write Crush configuration
if: always() && steps.detection_guard.outputs.run_detection == 'true'
run: |
umask 077
mkdir -p "$GITHUB_WORKSPACE"
- CONFIG="$GITHUB_WORKSPACE/opencode.jsonc"
+ CONFIG="$GITHUB_WORKSPACE/.crush.json"
BASE_CONFIG='{"agent":{"build":{"permissions":{"bash":"allow","edit":"allow","read":"allow","glob":"allow","grep":"allow","write":"allow","webfetch":"allow","websearch":"allow"}}}}'
if [ -f "$CONFIG" ]; then
MERGED=$(jq -n --argjson base "$BASE_CONFIG" --argjson existing "$(cat "$CONFIG")" '$existing * $base')
@@ -1320,22 +1320,22 @@ jobs:
echo "$BASE_CONFIG" > "$CONFIG"
fi
chmod 600 "$CONFIG"
- - name: Execute OpenCode CLI
+ - name: Execute Crush CLI
if: always() && steps.detection_guard.outputs.run_detection == 'true'
id: detection_agentic_execution
run: |
set -o pipefail
(umask 177 && touch /tmp/gh-aw/threat-detection/detection.log)
# shellcheck disable=SC1003
- sudo -E awf --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --allow-domains api.anthropic.com,host.docker.internal,opencode.ai,registry.npmjs.org --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --image-tag 0.25.23 --skip-pull --enable-api-proxy \
- -- /bin/bash -c 'export PATH="$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && opencode run --print-logs --log-level DEBUG "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
+ sudo -E awf --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --allow-domains api.anthropic.com,charm.land,github.com,host.docker.internal,raw.githubusercontent.com,registry.npmjs.org --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --image-tag 0.25.23 --skip-pull --enable-api-proxy \
+ -- /bin/bash -c 'export PATH="$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && crush run --verbose "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
env:
+ CRUSH_MODEL: anthropic/claude-sonnet-4-20250514
GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
GITHUB_WORKSPACE: ${{ github.workspace }}
NO_PROXY: localhost,127.0.0.1
OPENAI_API_KEY: ${{ secrets.COPILOT_GITHUB_TOKEN }}
OPENAI_BASE_URL: http://host.docker.internal:10004
- OPENCODE_MODEL: anthropic/claude-sonnet-4-20250514
- name: Upload threat detection log
if: always() && steps.detection_guard.outputs.run_detection == 'true'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -1409,15 +1409,15 @@ jobs:
pull-requests: write
timeout-minutes: 15
env:
- GH_AW_CALLER_WORKFLOW_ID: "${{ github.repository }}/smoke-opencode"
+ GH_AW_CALLER_WORKFLOW_ID: "${{ github.repository }}/smoke-crush"
GH_AW_DETECTION_CONCLUSION: ${{ needs.detection.outputs.detection_conclusion }}
GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }}
- GH_AW_ENGINE_ID: "opencode"
+ GH_AW_ENGINE_ID: "crush"
GH_AW_ENGINE_MODEL: "anthropic/claude-sonnet-4-20250514"
- GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by OpenCode*\",\"runStarted\":\"⚡ OpenCode initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** OpenCode has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. OpenCode encountered unexpected challenges...\"}"
- GH_AW_WORKFLOW_ID: "smoke-opencode"
- GH_AW_WORKFLOW_NAME: "Smoke OpenCode"
+ GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚡ *[{workflow_name}]({run_url}) — Powered by Crush*\",\"runStarted\":\"⚡ Crush initializing... [{workflow_name}]({run_url}) begins on this {event_type}...\",\"runSuccess\":\"🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** Crush has delivered. ⚡\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status}. Crush encountered unexpected challenges...\"}"
+ GH_AW_WORKFLOW_ID: "smoke-crush"
+ GH_AW_WORKFLOW_NAME: "Smoke Crush"
outputs:
code_push_failure_count: ${{ steps.process_safe_outputs.outputs.code_push_failure_count }}
code_push_failure_errors: ${{ steps.process_safe_outputs.outputs.code_push_failure_errors }}
@@ -1472,10 +1472,10 @@ jobs:
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
env:
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
- GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.anthropic.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,opencode.ai,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
+ GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.anthropic.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,charm.land,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_API_URL: ${{ github.api_url }}
- GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-opencode\"]},\"create_issue\":{\"close_older_issues\":true,\"expires\":2,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
+ GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-crush\"]},\"create_issue\":{\"close_older_issues\":true,\"expires\":2,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-opencode.md b/.github/workflows/smoke-crush.md
similarity index 80%
rename from .github/workflows/smoke-opencode.md
rename to .github/workflows/smoke-crush.md
index 1e1b66a49b..2ea78b61b1 100644
--- a/.github/workflows/smoke-opencode.md
+++ b/.github/workflows/smoke-crush.md
@@ -1,5 +1,5 @@
---
-description: Smoke test workflow that validates OpenCode engine functionality
+description: Smoke test workflow that validates Crush engine functionality
on:
workflow_dispatch:
pull_request:
@@ -11,9 +11,9 @@ permissions:
contents: read
issues: read
pull-requests: read
-name: Smoke OpenCode
+name: Smoke Crush
engine:
- id: opencode
+ id: crush
model: anthropic/claude-sonnet-4-20250514
strict: true
imports:
@@ -40,16 +40,16 @@ safe-outputs:
close-older-issues: true
labels: [automation, testing]
add-labels:
- allowed: [smoke-opencode]
+ allowed: [smoke-crush]
messages:
- footer: "> ⚡ *[{workflow_name}]({run_url}) — Powered by OpenCode*"
- run-started: "⚡ OpenCode initializing... [{workflow_name}]({run_url}) begins on this {event_type}..."
- run-success: "🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** OpenCode has delivered. ⚡"
- run-failure: "⚠️ [{workflow_name}]({run_url}) {status}. OpenCode encountered unexpected challenges..."
+ footer: "> ⚡ *[{workflow_name}]({run_url}) — Powered by Crush*"
+ run-started: "⚡ Crush initializing... [{workflow_name}]({run_url}) begins on this {event_type}..."
+ run-success: "🎯 [{workflow_name}]({run_url}) **MISSION COMPLETE!** Crush has delivered. ⚡"
+ run-failure: "⚠️ [{workflow_name}]({run_url}) {status}. Crush encountered unexpected challenges..."
timeout-minutes: 15
---
-# Smoke Test: OpenCode Engine Validation
+# Smoke Test: Crush Engine Validation
**CRITICAL EFFICIENCY REQUIREMENTS:**
- Keep ALL outputs extremely short and concise. Use single-line responses.
@@ -60,7 +60,7 @@ timeout-minutes: 15
1. **GitHub MCP Testing**: Use GitHub MCP tools to fetch details of exactly 2 merged pull requests from ${{ github.repository }} (title and number only)
2. **Web Fetch Testing**: Use the web-fetch MCP tool to fetch https://github.com and verify the response contains "GitHub" (do NOT use bash or playwright for this test - use the web-fetch MCP tool directly)
-3. **File Writing Testing**: Create a test file `/tmp/gh-aw/agent/smoke-test-opencode-${{ github.run_id }}.txt` with content "Smoke test passed for OpenCode at $(date)" (create the directory if it doesn't exist)
+3. **File Writing Testing**: Create a test file `/tmp/gh-aw/agent/smoke-test-crush-${{ github.run_id }}.txt` with content "Smoke test passed for Crush at $(date)" (create the directory if it doesn't exist)
4. **Bash Tool Testing**: Execute bash commands to verify file creation was successful (use `cat` to read the file back)
5. **Build gh-aw**: Run `GOCACHE=/tmp/go-cache GOMODCACHE=/tmp/go-mod make build` to verify the agent can successfully build the gh-aw project. If the command fails, mark this test as ❌ and report the failure.
@@ -70,7 +70,7 @@ Add a **very brief** comment (max 5-10 lines) to the current pull request with:
- ✅ or ❌ for each test result
- Overall status: PASS or FAIL
-If all tests pass, use the `add_labels` safe-output tool to add the label `smoke-opencode` to the pull request.
+If all tests pass, use the `add_labels` safe-output tool to add the label `smoke-crush` to the pull request.
**Important**: If no action is needed after completing your analysis, you **MUST** call the `noop` safe-output tool with a brief explanation. Failing to call any safe-output tool is the most common cause of safe-output workflow failures.
diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml
index eb1de23b0b..06a44b843f 100644
--- a/.github/workflows/smoke-gemini.lock.yml
+++ b/.github/workflows/smoke-gemini.lock.yml
@@ -178,14 +178,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -909,8 +909,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml
index b70729f58f..c928598970 100644
--- a/.github/workflows/smoke-multi-pr.lock.yml
+++ b/.github/workflows/smoke-multi-pr.lock.yml
@@ -173,14 +173,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -762,8 +762,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml
index 51ad9d31ee..1c51c7264d 100644
--- a/.github/workflows/smoke-project.lock.yml
+++ b/.github/workflows/smoke-project.lock.yml
@@ -174,14 +174,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -905,8 +905,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-service-ports.lock.yml b/.github/workflows/smoke-service-ports.lock.yml
index bb3d5c3462..cff295761f 100644
--- a/.github/workflows/smoke-service-ports.lock.yml
+++ b/.github/workflows/smoke-service-ports.lock.yml
@@ -146,14 +146,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -673,8 +673,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml
index bab1293a81..9fe50b5626 100644
--- a/.github/workflows/smoke-temporary-id.lock.yml
+++ b/.github/workflows/smoke-temporary-id.lock.yml
@@ -172,14 +172,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -774,8 +774,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml
index 2f09765a4a..d6f69845b8 100644
--- a/.github/workflows/smoke-test-tools.lock.yml
+++ b/.github/workflows/smoke-test-tools.lock.yml
@@ -163,14 +163,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -718,8 +718,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
index cef2f59455..6ee49c77ab 100644
--- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
@@ -155,14 +155,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -789,8 +789,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
index 4ad6f01d39..2e1bd38f8c 100644
--- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
+++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
@@ -184,14 +184,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -721,8 +721,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml
index 60b8f12c85..83b08257e6 100644
--- a/.github/workflows/smoke-workflow-call.lock.yml
+++ b/.github/workflows/smoke-workflow-call.lock.yml
@@ -187,14 +187,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -690,8 +690,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/spec-enforcer.lock.yml b/.github/workflows/spec-enforcer.lock.yml
index 1a7a20442c..3587cf6ba2 100644
--- a/.github/workflows/spec-enforcer.lock.yml
+++ b/.github/workflows/spec-enforcer.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -678,8 +678,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/spec-extractor.lock.yml b/.github/workflows/spec-extractor.lock.yml
index 340eef1777..857d087404 100644
--- a/.github/workflows/spec-extractor.lock.yml
+++ b/.github/workflows/spec-extractor.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -762,8 +762,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/spec-librarian.lock.yml b/.github/workflows/spec-librarian.lock.yml
index ebf8f8b93a..fa9f258ba2 100644
--- a/.github/workflows/spec-librarian.lock.yml
+++ b/.github/workflows/spec-librarian.lock.yml
@@ -138,14 +138,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -717,8 +717,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml
index ba635fef8e..a7fd86127b 100644
--- a/.github/workflows/stale-repo-identifier.lock.yml
+++ b/.github/workflows/stale-repo-identifier.lock.yml
@@ -153,14 +153,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -813,8 +813,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml
index 236cbc9764..75ba4dc4fa 100644
--- a/.github/workflows/static-analysis-report.lock.yml
+++ b/.github/workflows/static-analysis-report.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -786,8 +786,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml
index 945d8ef5e6..7acf8a7d1b 100644
--- a/.github/workflows/step-name-alignment.lock.yml
+++ b/.github/workflows/step-name-alignment.lock.yml
@@ -135,14 +135,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -664,8 +664,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml
index e5918e196b..e6afcb3d6b 100644
--- a/.github/workflows/sub-issue-closer.lock.yml
+++ b/.github/workflows/sub-issue-closer.lock.yml
@@ -132,14 +132,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -686,8 +686,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml
index 70074b657b..23d979b03b 100644
--- a/.github/workflows/super-linter.lock.yml
+++ b/.github/workflows/super-linter.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -707,8 +707,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml
index 861aaa4d65..185572d030 100644
--- a/.github/workflows/technical-doc-writer.lock.yml
+++ b/.github/workflows/technical-doc-writer.lock.yml
@@ -142,14 +142,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -759,8 +759,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml
index 558e0f30b7..99fd2c1f5d 100644
--- a/.github/workflows/terminal-stylist.lock.yml
+++ b/.github/workflows/terminal-stylist.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -705,8 +705,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml
index 9e62eea0fe..921dc11e8d 100644
--- a/.github/workflows/test-create-pr-error-handling.lock.yml
+++ b/.github/workflows/test-create-pr-error-handling.lock.yml
@@ -133,14 +133,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -685,8 +685,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml
index 7672e6394f..1e3bc35b92 100644
--- a/.github/workflows/test-dispatcher.lock.yml
+++ b/.github/workflows/test-dispatcher.lock.yml
@@ -128,14 +128,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -624,8 +624,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml
index 162dc26ea7..540bbecdc2 100644
--- a/.github/workflows/test-project-url-default.lock.yml
+++ b/.github/workflows/test-project-url-default.lock.yml
@@ -129,14 +129,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -685,8 +685,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/test-quality-sentinel.lock.yml b/.github/workflows/test-quality-sentinel.lock.yml
index fac070e560..d170c7162a 100644
--- a/.github/workflows/test-quality-sentinel.lock.yml
+++ b/.github/workflows/test-quality-sentinel.lock.yml
@@ -130,14 +130,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -694,8 +694,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml
index 23e83837de..da792f802d 100644
--- a/.github/workflows/test-workflow.lock.yml
+++ b/.github/workflows/test-workflow.lock.yml
@@ -131,14 +131,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -425,8 +425,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml
index c521171c69..29b9264f7a 100644
--- a/.github/workflows/tidy.lock.yml
+++ b/.github/workflows/tidy.lock.yml
@@ -169,14 +169,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -752,8 +752,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml
index 1ed4b34162..b3614a662a 100644
--- a/.github/workflows/typist.lock.yml
+++ b/.github/workflows/typist.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -723,8 +723,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml
index 886d67dae9..2fd3b9ff3e 100644
--- a/.github/workflows/ubuntu-image-analyzer.lock.yml
+++ b/.github/workflows/ubuntu-image-analyzer.lock.yml
@@ -141,14 +141,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -662,8 +662,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml
index 127e5e39d9..b944f89aaa 100644
--- a/.github/workflows/unbloat-docs.lock.yml
+++ b/.github/workflows/unbloat-docs.lock.yml
@@ -168,14 +168,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -817,8 +817,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml
index b307b6221a..8e797c4420 100644
--- a/.github/workflows/update-astro.lock.yml
+++ b/.github/workflows/update-astro.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -689,8 +689,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml
index 4ed60b20ab..15beacbba4 100644
--- a/.github/workflows/video-analyzer.lock.yml
+++ b/.github/workflows/video-analyzer.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -660,8 +660,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/weekly-blog-post-writer.lock.yml b/.github/workflows/weekly-blog-post-writer.lock.yml
index 99c36348a1..23b56e28ea 100644
--- a/.github/workflows/weekly-blog-post-writer.lock.yml
+++ b/.github/workflows/weekly-blog-post-writer.lock.yml
@@ -140,14 +140,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -762,8 +762,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml
index e6e1ff1a52..c700c5137a 100644
--- a/.github/workflows/weekly-editors-health-check.lock.yml
+++ b/.github/workflows/weekly-editors-health-check.lock.yml
@@ -134,14 +134,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -706,8 +706,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml
index 8f971f8fad..e54f22fb68 100644
--- a/.github/workflows/weekly-issue-summary.lock.yml
+++ b/.github/workflows/weekly-issue-summary.lock.yml
@@ -143,14 +143,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
diff --git a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml
index b797947ac5..94ba65f18b 100644
--- a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml
+++ b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml
@@ -137,14 +137,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -652,8 +652,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/workflow-generator.lock.yml b/.github/workflows/workflow-generator.lock.yml
index 9ae7b38a9a..4577173630 100644
--- a/.github/workflows/workflow-generator.lock.yml
+++ b/.github/workflows/workflow-generator.lock.yml
@@ -152,14 +152,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -747,8 +747,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml
index 85f881057c..9e4e8610f5 100644
--- a/.github/workflows/workflow-health-manager.lock.yml
+++ b/.github/workflows/workflow-health-manager.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -755,8 +755,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml
index 15d34cae94..346033179e 100644
--- a/.github/workflows/workflow-normalizer.lock.yml
+++ b/.github/workflows/workflow-normalizer.lock.yml
@@ -139,14 +139,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -727,8 +727,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml
index d200809926..fa48240d17 100644
--- a/.github/workflows/workflow-skill-extractor.lock.yml
+++ b/.github/workflows/workflow-skill-extractor.lock.yml
@@ -136,14 +136,14 @@ jobs:
actions/setup
.claude
.codex
+ .crush
.gemini
- .opencode
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -699,8 +699,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
diff --git a/actions/setup/sh/convert_gateway_config_opencode.sh b/actions/setup/sh/convert_gateway_config_crush.sh
similarity index 69%
rename from actions/setup/sh/convert_gateway_config_opencode.sh
rename to actions/setup/sh/convert_gateway_config_crush.sh
index eaf3368d01..74cbc06814 100644
--- a/actions/setup/sh/convert_gateway_config_opencode.sh
+++ b/actions/setup/sh/convert_gateway_config_crush.sh
@@ -1,13 +1,13 @@
#!/usr/bin/env bash
-# Convert MCP Gateway Configuration to OpenCode Format
+# Convert MCP Gateway Configuration to Crush Format
# This script converts the gateway's standard HTTP-based MCP configuration
-# to the JSON format expected by OpenCode (opencode.jsonc)
+# to the JSON format expected by Crush (.crush.json)
#
-# OpenCode reads MCP server configuration from opencode.jsonc:
-# - Project: ./opencode.jsonc (used here)
-# - Global: ~/.config/opencode/opencode.json
+# Crush reads MCP server configuration from .crush.json:
+# - Project: ./.crush.json (used here)
+# - Global: ~/.config/crush/crush.json
#
-# See: https://opencode.ai/docs/mcp-servers/
+# See: https://github.com/charmbracelet/crush#mcps
set -euo pipefail
@@ -48,11 +48,11 @@ if [ -z "$GITHUB_WORKSPACE" ]; then
exit 1
fi
-echo "Converting gateway configuration to OpenCode format..."
+echo "Converting gateway configuration to Crush format..."
echo "Input: $MCP_GATEWAY_OUTPUT"
echo "Target domain: $MCP_GATEWAY_DOMAIN:$MCP_GATEWAY_PORT"
-# Convert gateway output to OpenCode opencode.jsonc format
+# Convert gateway output to Crush .crush.json format
# Gateway format:
# {
# "mcpServers": {
@@ -66,12 +66,12 @@ echo "Target domain: $MCP_GATEWAY_DOMAIN:$MCP_GATEWAY_PORT"
# }
# }
#
-# OpenCode format:
+# Crush format:
# {
# "mcp": {
# "server-name": {
-# "type": "remote",
-# "enabled": true,
+# "type": "http",
+# "disabled": false,
# "url": "http://domain:port/mcp/server-name",
# "headers": {
# "Authorization": "apiKey"
@@ -82,40 +82,40 @@ echo "Target domain: $MCP_GATEWAY_DOMAIN:$MCP_GATEWAY_PORT"
#
# The main differences:
# 1. Top-level key is "mcp" not "mcpServers"
-# 2. Server type is "remote" not "http"
-# 3. Has "enabled": true field
+# 2. Server type remains "http"
+# 3. Uses "disabled": false
# 4. Remove "tools" field (Copilot-specific)
# 5. URLs must use the correct domain (host.docker.internal) for container access
# Build the correct URL prefix using the configured domain and port
URL_PREFIX="http://${MCP_GATEWAY_DOMAIN}:${MCP_GATEWAY_PORT}"
-OPENCODE_CONFIG_FILE="${GITHUB_WORKSPACE}/opencode.jsonc"
+CRUSH_CONFIG_FILE="${GITHUB_WORKSPACE}/.crush.json"
# Build the MCP section from gateway output
MCP_SECTION=$(jq --arg urlPrefix "$URL_PREFIX" '
.mcpServers | with_entries(
.value |= {
- "type": "remote",
- "enabled": true,
+ "type": "http",
+ "disabled": false,
"url": (.url | sub("^http://[^/]+/mcp/"; $urlPrefix + "/mcp/")),
"headers": .headers
}
)
' "$MCP_GATEWAY_OUTPUT")
-# Merge into existing opencode.jsonc or create new one
-if [ -f "$OPENCODE_CONFIG_FILE" ]; then
- echo "Merging MCP config into existing opencode.jsonc..."
- jq --argjson mcpSection "$MCP_SECTION" '.mcp = (.mcp // {}) * $mcpSection' "$OPENCODE_CONFIG_FILE" > "${OPENCODE_CONFIG_FILE}.tmp"
- mv "${OPENCODE_CONFIG_FILE}.tmp" "$OPENCODE_CONFIG_FILE"
+# Merge into existing .crush.json or create new one
+if [ -f "$CRUSH_CONFIG_FILE" ]; then
+ echo "Merging MCP config into existing .crush.json..."
+ jq --argjson mcpSection "$MCP_SECTION" '.mcp = (.mcp // {}) * $mcpSection' "$CRUSH_CONFIG_FILE" > "${CRUSH_CONFIG_FILE}.tmp"
+ mv "${CRUSH_CONFIG_FILE}.tmp" "$CRUSH_CONFIG_FILE"
else
- echo "Creating new opencode.jsonc..."
- jq -n --argjson mcpSection "$MCP_SECTION" '{"mcp": $mcpSection}' > "$OPENCODE_CONFIG_FILE"
+ echo "Creating new .crush.json..."
+ jq -n --argjson mcpSection "$MCP_SECTION" '{"mcp": $mcpSection}' > "$CRUSH_CONFIG_FILE"
fi
-echo "OpenCode configuration written to $OPENCODE_CONFIG_FILE"
-chmod 600 "$OPENCODE_CONFIG_FILE"
+echo "Crush configuration written to $CRUSH_CONFIG_FILE"
+chmod 600 "$CRUSH_CONFIG_FILE"
echo ""
echo "Converted configuration:"
-cat "$OPENCODE_CONFIG_FILE"
+cat "$CRUSH_CONFIG_FILE"
diff --git a/actions/setup/sh/start_mcp_gateway.sh b/actions/setup/sh/start_mcp_gateway.sh
index d0e85c1400..03e7a8c2f5 100755
--- a/actions/setup/sh/start_mcp_gateway.sh
+++ b/actions/setup/sh/start_mcp_gateway.sh
@@ -407,9 +407,9 @@ case "$ENGINE_TYPE" in
echo "Using Gemini converter..."
node "${RUNNER_TEMP}/gh-aw/actions/convert_gateway_config_gemini.cjs"
;;
- opencode)
- echo "Using OpenCode converter..."
- bash ${RUNNER_TEMP}/gh-aw/actions/convert_gateway_config_opencode.sh
+ crush)
+ echo "Using Crush converter..."
+ bash ${RUNNER_TEMP}/gh-aw/actions/convert_gateway_config_crush.sh
;;
*)
echo "No agent-specific converter found for engine: $ENGINE_TYPE"
diff --git a/docs/src/content/docs/reference/engines.md b/docs/src/content/docs/reference/engines.md
index c62f23a817..788ce23321 100644
--- a/docs/src/content/docs/reference/engines.md
+++ b/docs/src/content/docs/reference/engines.md
@@ -1,6 +1,6 @@
---
title: AI Engines (aka Coding Agents)
-description: Complete guide to AI engines (coding agents) usable with GitHub Agentic Workflows, including Copilot, Claude, Codex, Gemini, and OpenCode with their specific configuration options.
+description: Complete guide to AI engines (coding agents) usable with GitHub Agentic Workflows, including Copilot, Claude, Codex, Gemini, and Crush with their specific configuration options.
sidebar:
order: 600
---
@@ -17,7 +17,7 @@ Set `engine:` in your workflow frontmatter and configure the corresponding secre
| [Claude by Anthropic (Claude Code)](https://www.anthropic.com/index/claude) | `claude` | [ANTHROPIC_API_KEY](/gh-aw/reference/auth/#anthropic_api_key) |
| [OpenAI Codex](https://openai.com/blog/openai-codex) | `codex` | [OPENAI_API_KEY](/gh-aw/reference/auth/#openai_api_key) |
| [Google Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | [GEMINI_API_KEY](/gh-aw/reference/auth/#gemini_api_key) |
-| [OpenCode](https://github.com/opencode-ai/opencode) (experimental) | `opencode` | [COPILOT_GITHUB_TOKEN](/gh-aw/reference/auth/#copilot_github_token) |
+| [Crush](https://github.com/@charmland/crush/crush) (experimental) | `crush` | [COPILOT_GITHUB_TOKEN](/gh-aw/reference/auth/#copilot_github_token) |
Copilot CLI is the default — `engine:` can be omitted when using Copilot. See the linked authentication docs for secret setup instructions.
@@ -25,7 +25,7 @@ Copilot CLI is the default — `engine:` can be omitted when using Copilot. See
Not all features are available across all engines. The table below summarizes per-engine support for commonly used workflow options:
-| Feature | Copilot | Claude | Codex | Gemini | OpenCode |
+| Feature | Copilot | Claude | Codex | Gemini | Crush |
|---------|:-------:|:------:|:-----:|:------:|:--------:|
| `max-turns` | ❌ | ✅ | ❌ | ❌ | ❌ |
| `max-continuations` | ✅ | ❌ | ❌ | ❌ | ❌ |
@@ -66,7 +66,7 @@ By default, workflows install the latest available version of each engine CLI. T
| Claude Code | `claude` | `"2.1.70"` |
| Codex | `codex` | `"0.111.0"` |
| Gemini CLI | `gemini` | `"0.31.0"` |
-| OpenCode | `opencode` | `"1.2.14"` |
+| Crush | `crush` | `"1.2.14"` |
```yaml wrap
engine:
@@ -158,7 +158,7 @@ The specified hostname must also be listed in `network.allowed` for the firewall
#### Custom API Endpoints via Environment Variables
-Three environment variables receive special treatment when set in `engine.env`: `OPENAI_BASE_URL` (for `codex` and `opencode`), `ANTHROPIC_BASE_URL` (for `claude`), `GITHUB_COPILOT_BASE_URL` (for `copilot`), and `GEMINI_API_BASE_URL` (for `gemini`). When any of these is present, the API proxy automatically routes API calls to the specified host instead of the default endpoint. Firewall enforcement remains active, but this routing layer is not a separate authentication boundary for arbitrary code already running inside the agent container.
+Three environment variables receive special treatment when set in `engine.env`: `OPENAI_BASE_URL` (for `codex` and `crush`), `ANTHROPIC_BASE_URL` (for `claude`), `GITHUB_COPILOT_BASE_URL` (for `copilot`), and `GEMINI_API_BASE_URL` (for `gemini`). When any of these is present, the API proxy automatically routes API calls to the specified host instead of the default endpoint. Firewall enforcement remains active, but this routing layer is not a separate authentication boundary for arbitrary code already running inside the agent container.
This enables workflows to use internal LLM routers, Azure OpenAI deployments, corporate Copilot proxies, or other compatible endpoints without bypassing AWF's security model.
@@ -224,11 +224,11 @@ network:
The custom hostname is extracted from the URL and passed to the AWF `--openai-api-target`, `--anthropic-api-target`, `--copilot-api-target`, or `--gemini-api-target` flag automatically at compile time. No additional configuration is required.
-For OpenCode workflows routed through a custom OpenAI-compatible endpoint:
+For Crush workflows routed through a custom OpenAI-compatible endpoint:
```yaml wrap
engine:
- id: opencode
+ id: crush
model: openai/gpt-4o
env:
OPENAI_BASE_URL: "https://openai-proxy.internal.example.com/v1"
@@ -240,7 +240,7 @@ network:
- openai-proxy.internal.example.com
```
-OpenCode uses the OpenAI-compatible API format by default (via Copilot routing). The `model` field uses a `provider/model` format — the provider prefix determines which API domains are added to the firewall allowlist.
+Crush uses the OpenAI-compatible API format by default (via Copilot routing). The `model` field uses a `provider/model` format — the provider prefix determines which API domains are added to the firewall allowlist.
### Engine Command-Line Arguments
@@ -314,7 +314,7 @@ tools:
| Claude | 60 s |
| Codex | 120 s |
| Gemini | not enforced by gh-aw (engine-managed) |
-| OpenCode | not enforced by gh-aw (engine-managed) |
+| Crush | not enforced by gh-aw (engine-managed) |
See [Tool Timeout Configuration](/gh-aw/reference/tools/#tool-timeout-configuration) for full documentation including `tools.startup-timeout`.
@@ -370,13 +370,13 @@ tools:
timeout-minutes: 60
```
-#### OpenCode
+#### Crush
-OpenCode does not support `max-turns` or `max-continuations`. Use `timeout-minutes` and `tools.timeout` to bound execution:
+Crush does not support `max-turns` or `max-continuations`. Use `timeout-minutes` and `tools.timeout` to bound execution:
```yaml wrap
engine:
- id: opencode
+ id: crush
tools:
timeout: 300
timeout-minutes: 60
@@ -384,7 +384,7 @@ timeout-minutes: 60
### Summary Table
-| Timeout knob | Copilot | Claude | Codex | Gemini | OpenCode | Notes |
+| Timeout knob | Copilot | Claude | Codex | Gemini | Crush | Notes |
|---|:---:|:---:|:---:|:---:|:---:|---|
| `timeout-minutes` | ✅ | ✅ | ✅ | ✅ | ✅ | Job-level wall clock |
| `tools.timeout` | ✅ | ✅ | ✅ | ✅ | ✅ | Per tool-call limit (seconds) |
diff --git a/docs/src/content/docs/reference/environment-variables.md b/docs/src/content/docs/reference/environment-variables.md
index 880d28c6df..d089a56a5b 100644
--- a/docs/src/content/docs/reference/environment-variables.md
+++ b/docs/src/content/docs/reference/environment-variables.md
@@ -166,7 +166,7 @@ These variables override the default AI model used for agent runs and threat det
| `GH_AW_MODEL_AGENT_CLAUDE` | Anthropic Claude |
| `GH_AW_MODEL_AGENT_CODEX` | OpenAI Codex |
| `GH_AW_MODEL_AGENT_GEMINI` | Google Gemini |
-| `GH_AW_MODEL_AGENT_OPENCODE` | OpenCode |
+| `GH_AW_MODEL_AGENT_CRUSH` | Crush |
| `GH_AW_MODEL_AGENT_CUSTOM` | Custom engine |
### Detection runs
@@ -177,7 +177,7 @@ These variables override the default AI model used for agent runs and threat det
| `GH_AW_MODEL_DETECTION_CLAUDE` | Anthropic Claude |
| `GH_AW_MODEL_DETECTION_CODEX` | OpenAI Codex |
| `GH_AW_MODEL_DETECTION_GEMINI` | Google Gemini |
-| `GH_AW_MODEL_DETECTION_OPENCODE` | OpenCode |
+| `GH_AW_MODEL_DETECTION_CRUSH` | Crush |
Set a model override as an organization variable:
diff --git a/docs/src/content/docs/reference/faq.md b/docs/src/content/docs/reference/faq.md
index f6567f059c..1670ed3dca 100644
--- a/docs/src/content/docs/reference/faq.md
+++ b/docs/src/content/docs/reference/faq.md
@@ -114,7 +114,7 @@ dependencies:
- acme-org/acme-plugins
```
-The `dependencies:` approach works with all supported engines (Copilot, Claude, Codex, Gemini, OpenCode), whereas the old `plugins:` field was limited to the Copilot engine only.
+The `dependencies:` approach works with all supported engines (Copilot, Claude, Codex, Gemini, Crush), whereas the old `plugins:` field was limited to the Copilot engine only.
See [APM Dependencies](/gh-aw/reference/dependencies/) for full configuration options.
diff --git a/docs/src/content/docs/reference/frontmatter-full.md b/docs/src/content/docs/reference/frontmatter-full.md
index f3e335f3ea..e29e729d7a 100644
--- a/docs/src/content/docs/reference/frontmatter-full.md
+++ b/docs/src/content/docs/reference/frontmatter-full.md
@@ -1524,14 +1524,14 @@ post-steps: []
# This field supports multiple formats (oneOf):
# Option 1: Engine name: built-in ('claude', 'codex', 'copilot', 'gemini',
-# 'opencode') or a named catalog entry
+# 'crush') or a named catalog entry
engine: "example-value"
# Option 2: Extended engine configuration object with advanced options for model
# selection, turn limiting, environment variables, and custom steps
engine:
# AI engine identifier: built-in ('claude', 'codex', 'copilot', 'gemini',
- # 'opencode') or a named catalog entry
+ # 'crush') or a named catalog entry
id: "example-value"
# Optional version of the AI engine action (e.g., 'beta', 'stable', 20). Has
@@ -1681,7 +1681,7 @@ engine:
# Runtime adapter reference for the inline engine definition
runtime:
# Runtime adapter identifier (e.g. 'codex', 'claude', 'copilot', 'gemini',
- # 'opencode')
+ # 'crush')
id: "example-value"
# Optional version of the runtime adapter (e.g. '0.105.0', 'beta')
@@ -1765,7 +1765,7 @@ engine:
# (used in builtin engine shared workflow files such as @builtin:engines/*.md)
engine:
# Unique engine identifier (e.g. 'copilot', 'claude', 'codex', 'gemini',
- # 'opencode')
+ # 'crush')
id: "example-value"
# Human-readable display name for the engine
diff --git a/docs/src/content/docs/setup/cli.md b/docs/src/content/docs/setup/cli.md
index dac5b080dc..185ffa6b33 100644
--- a/docs/src/content/docs/setup/cli.md
+++ b/docs/src/content/docs/setup/cli.md
@@ -220,7 +220,7 @@ gh aw secrets bootstrap --engine copilot # Check only Copilot se
gh aw secrets bootstrap --non-interactive # Display missing secrets without prompting
```
-**Options:** `--engine` (copilot, claude, codex, gemini, opencode), `--non-interactive`, `--repo`
+**Options:** `--engine` (copilot, claude, codex, gemini, crush), `--non-interactive`, `--repo`
See [Authentication](/gh-aw/reference/auth/) for details.
diff --git a/pkg/cli/completions_test.go b/pkg/cli/completions_test.go
index 4214717795..18e384b45d 100644
--- a/pkg/cli/completions_test.go
+++ b/pkg/cli/completions_test.go
@@ -240,12 +240,12 @@ func TestCompleteEngineNames(t *testing.T) {
{
name: "empty prefix returns all engines",
toComplete: "",
- wantLen: 5, // copilot, claude, codex, gemini, opencode
+ wantLen: 5, // copilot, claude, codex, gemini, crush
},
{
- name: "c prefix returns claude, codex, copilot",
+ name: "c prefix returns claude, codex, copilot, crush",
toComplete: "c",
- wantLen: 3,
+ wantLen: 4,
},
{
name: "co prefix returns copilot, codex",
diff --git a/pkg/cli/tokens_bootstrap.go b/pkg/cli/tokens_bootstrap.go
index 4dfa4ae04b..5b200699e6 100644
--- a/pkg/cli/tokens_bootstrap.go
+++ b/pkg/cli/tokens_bootstrap.go
@@ -40,7 +40,7 @@ Examples:
}
cmd.Flags().BoolVar(&nonInteractiveFlag, "non-interactive", false, "Check secrets without prompting (display-only mode)")
- cmd.Flags().StringVarP(&engineFlag, "engine", "e", "", "Check tokens for specific engine (copilot, claude, codex, gemini, opencode)")
+ cmd.Flags().StringVarP(&engineFlag, "engine", "e", "", "Check tokens for specific engine (copilot, claude, codex, gemini, crush)")
addRepoFlag(cmd)
return cmd
diff --git a/pkg/console/README.md b/pkg/console/README.md
index 281692974b..658899d932 100644
--- a/pkg/console/README.md
+++ b/pkg/console/README.md
@@ -360,7 +360,7 @@ err := console.CompilerError{
Type: "error",
Message: "unknown engine: 'myengine'",
Context: []string{"engine: myengine"},
- Hint: "Valid engines are: copilot, claude, codex, gemini, opencode",
+ Hint: "Valid engines are: copilot, claude, codex, gemini, crush",
}
fmt.Fprint(os.Stderr, console.FormatError(err))
```
diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go
index 4bf6b87e70..f762d5c2a7 100644
--- a/pkg/constants/constants.go
+++ b/pkg/constants/constants.go
@@ -101,8 +101,8 @@ const (
// GeminiLLMGatewayPort is the port for the Gemini LLM gateway
GeminiLLMGatewayPort = 10003
- // OpenCodeLLMGatewayPort is the port for the OpenCode LLM gateway
- OpenCodeLLMGatewayPort = 10004
+ // CrushLLMGatewayPort is the port for the Crush LLM gateway
+ CrushLLMGatewayPort = 10004
)
// DefaultGitHubLockdown is the default value for the GitHub MCP server lockdown setting.
diff --git a/pkg/constants/constants_test.go b/pkg/constants/constants_test.go
index 2c42c54383..c063911246 100644
--- a/pkg/constants/constants_test.go
+++ b/pkg/constants/constants_test.go
@@ -83,7 +83,7 @@ func TestAgenticEngines(t *testing.T) {
t.Error("AgenticEngines should not be empty")
}
- expectedEngines := []string{"claude", "codex", "copilot", "gemini", "opencode"}
+ expectedEngines := []string{"claude", "codex", "copilot", "gemini", "crush"}
if len(AgenticEngines) != len(expectedEngines) {
t.Errorf("AgenticEngines length = %d, want %d", len(AgenticEngines), len(expectedEngines))
}
diff --git a/pkg/constants/engine_constants.go b/pkg/constants/engine_constants.go
index 43471453cc..3532ea90f0 100644
--- a/pkg/constants/engine_constants.go
+++ b/pkg/constants/engine_constants.go
@@ -20,8 +20,8 @@ const (
CodexEngine EngineName = "codex"
// GeminiEngine is the Google Gemini engine identifier
GeminiEngine EngineName = "gemini"
- // OpenCodeEngine is the OpenCode engine identifier
- OpenCodeEngine EngineName = "opencode"
+ // CrushEngine is the Crush engine identifier
+ CrushEngine EngineName = "crush"
// DefaultEngine is the default agentic engine used when no engine is explicitly specified.
// Currently defaults to CopilotEngine.
@@ -32,7 +32,7 @@ const (
// Deprecated: Use workflow.NewEngineCatalog(workflow.NewEngineRegistry()).IDs() for a
// catalog-derived list. This slice is maintained for backward compatibility and must
// stay in sync with the built-in engines registered in NewEngineCatalog.
-var AgenticEngines = []string{string(ClaudeEngine), string(CodexEngine), string(CopilotEngine), string(GeminiEngine), string(OpenCodeEngine)}
+var AgenticEngines = []string{string(ClaudeEngine), string(CodexEngine), string(CopilotEngine), string(GeminiEngine), string(CrushEngine)}
// EngineOption represents a selectable AI engine with its display metadata and secret configuration
type EngineOption struct {
@@ -86,13 +86,13 @@ var EngineOptions = []EngineOption{
WhenNeeded: "Gemini engine workflows",
},
{
- Value: string(OpenCodeEngine),
- Label: "OpenCode",
- Description: "OpenCode multi-provider AI coding agent (BYOK)",
+ Value: string(CrushEngine),
+ Label: "Crush",
+ Description: "Crush multi-provider AI coding agent (BYOK)",
SecretName: "COPILOT_GITHUB_TOKEN",
AlternativeSecrets: []string{"ANTHROPIC_API_KEY", "GOOGLE_API_KEY"},
- KeyURL: "https://opencode.ai/docs/get-started/",
- WhenNeeded: "OpenCode engine workflows (default: Copilot routing)",
+ KeyURL: "https://github.com/charmbracelet/crush#installation",
+ WhenNeeded: "Crush engine workflows (default: Copilot routing)",
},
}
@@ -188,10 +188,10 @@ const (
EnvVarModelDetectionCodex = "GH_AW_MODEL_DETECTION_CODEX"
// EnvVarModelDetectionGemini configures the default Gemini model for detection
EnvVarModelDetectionGemini = "GH_AW_MODEL_DETECTION_GEMINI"
- // EnvVarModelAgentOpenCode configures the default OpenCode model for agent execution
- EnvVarModelAgentOpenCode = "GH_AW_MODEL_AGENT_OPENCODE"
- // EnvVarModelDetectionOpenCode configures the default OpenCode model for detection
- EnvVarModelDetectionOpenCode = "GH_AW_MODEL_DETECTION_OPENCODE"
+ // EnvVarModelAgentCrush configures the default Crush model for agent execution
+ EnvVarModelAgentCrush = "GH_AW_MODEL_AGENT_CRUSH"
+ // EnvVarModelDetectionCrush configures the default Crush model for detection
+ EnvVarModelDetectionCrush = "GH_AW_MODEL_DETECTION_CRUSH"
// CopilotCLIModelEnvVar is the native environment variable name supported by the Copilot CLI
// for selecting the model. Setting this env var is equivalent to passing --model to the CLI.
@@ -223,9 +223,9 @@ const (
// for selecting the model. Setting this env var is equivalent to passing --model to the CLI.
GeminiCLIModelEnvVar = "GEMINI_MODEL"
- // OpenCodeCLIModelEnvVar is the native environment variable name for OpenCode model selection.
- // OpenCode uses provider/model format (e.g., "anthropic/claude-sonnet-4-20250514").
- OpenCodeCLIModelEnvVar = "OPENCODE_MODEL"
+ // CrushCLIModelEnvVar is the native environment variable name for Crush model selection.
+ // Crush uses provider/model format (e.g., "anthropic/claude-sonnet-4-20250514").
+ CrushCLIModelEnvVar = "CRUSH_MODEL"
// Common environment variable names used across all engines
diff --git a/pkg/constants/version_constants.go b/pkg/constants/version_constants.go
index e8f5f3aff5..db819f55bb 100644
--- a/pkg/constants/version_constants.go
+++ b/pkg/constants/version_constants.go
@@ -47,8 +47,8 @@ const DefaultCodexVersion Version = "0.118.0"
// DefaultGeminiVersion is the default version of the Google Gemini CLI
const DefaultGeminiVersion Version = "0.37.2"
-// DefaultOpenCodeVersion is the default version of the OpenCode CLI
-const DefaultOpenCodeVersion Version = "1.2.14"
+// DefaultCrushVersion is the default version of the Crush CLI
+const DefaultCrushVersion Version = "0.59.0"
// DefaultGitHubMCPServerVersion is the default version of the GitHub MCP server Docker image
const DefaultGitHubMCPServerVersion Version = "v0.32.0"
diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json
index 4dd15e0dab..d1b3c563c4 100644
--- a/pkg/parser/schemas/main_workflow_schema.json
+++ b/pkg/parser/schemas/main_workflow_schema.json
@@ -2963,7 +2963,7 @@
"$comment": "Blocked domains are subtracted from the allowed list. Useful for blocking specific domains or ecosystems within broader allowed categories."
},
"firewall": {
- "description": "AWF (Agent Workflow Firewall) configuration for network egress control. Supported for copilot, claude, codex, gemini, and opencode engines.",
+ "description": "AWF (Agent Workflow Firewall) configuration for network egress control. Supported for copilot, claude, codex, gemini, and crush engines.",
"deprecated": true,
"x-deprecation-message": "The firewall is now always enabled. Use 'sandbox.agent' to configure the sandbox type.",
"oneOf": [
@@ -9293,7 +9293,7 @@
"oneOf": [
{
"type": "string",
- "description": "Engine name: built-in ('claude', 'codex', 'copilot', 'gemini', 'opencode') or a named catalog entry"
+ "description": "Engine name: built-in ('claude', 'codex', 'copilot', 'gemini', 'crush') or a named catalog entry"
},
{
"type": "object",
@@ -9301,7 +9301,7 @@
"properties": {
"id": {
"type": "string",
- "description": "AI engine identifier: built-in ('claude', 'codex', 'copilot', 'gemini', 'opencode') or a named catalog entry"
+ "description": "AI engine identifier: built-in ('claude', 'codex', 'copilot', 'gemini', 'crush') or a named catalog entry"
},
"version": {
"type": ["string", "number"],
@@ -9462,8 +9462,8 @@
"properties": {
"id": {
"type": "string",
- "description": "Runtime adapter identifier (e.g. 'codex', 'claude', 'copilot', 'gemini', 'opencode')",
- "examples": ["codex", "claude", "copilot", "gemini", "opencode"]
+ "description": "Runtime adapter identifier (e.g. 'codex', 'claude', 'copilot', 'gemini', 'crush')",
+ "examples": ["codex", "claude", "copilot", "gemini", "crush"]
},
"version": {
"type": ["string", "number"],
@@ -9584,7 +9584,7 @@
"properties": {
"id": {
"type": "string",
- "description": "Unique engine identifier (e.g. 'copilot', 'claude', 'codex', 'gemini', 'opencode')"
+ "description": "Unique engine identifier (e.g. 'copilot', 'claude', 'codex', 'gemini', 'crush')"
},
"display-name": {
"type": "string",
diff --git a/pkg/workflow/README.md b/pkg/workflow/README.md
index a434ab6273..5bf8614174 100644
--- a/pkg/workflow/README.md
+++ b/pkg/workflow/README.md
@@ -10,7 +10,7 @@ The package is organized around three major subsystems:
1. **Compiler** (`compiler*.go`, `compiler_types.go`): The `Compiler` struct drives the main compilation pipeline. It accepts a markdown file path (or pre-parsed `WorkflowData`), builds the full GitHub Actions workflow YAML, and writes the `.lock.yml` file only when the content has changed.
-2. **Engine registry** (`agentic_engine.go`, `*_engine.go`): A pluggable engine architecture where each AI engine (`copilot`, `claude`, `codex`, `gemini`, `opencode`, `custom`) implements a set of focused interfaces (`Engine`, `CapabilityProvider`, `WorkflowExecutor`, `MCPConfigProvider`, etc.). Engines are registered in a global `EngineRegistry` and looked up by name at compile time.
+2. **Engine registry** (`agentic_engine.go`, `*_engine.go`): A pluggable engine architecture where each AI engine (`copilot`, `claude`, `codex`, `gemini`, `crush`, `custom`) implements a set of focused interfaces (`Engine`, `CapabilityProvider`, `WorkflowExecutor`, `MCPConfigProvider`, etc.). Engines are registered in a global `EngineRegistry` and looked up by name at compile time.
3. **Validation** (`validation.go`, `strict_mode_*.go`, `*_validation.go`): A layered validation system organized by domain. Each validator is a focused file under 300 lines. Validation runs both at compile time and optionally in strict mode for production deployments.
diff --git a/pkg/workflow/agentic_engine.go b/pkg/workflow/agentic_engine.go
index 7f0dc07a03..c6d9fbdaef 100644
--- a/pkg/workflow/agentic_engine.go
+++ b/pkg/workflow/agentic_engine.go
@@ -440,7 +440,7 @@ func NewEngineRegistry() *EngineRegistry {
registry.Register(NewCodexEngine())
registry.Register(NewCopilotEngine())
registry.Register(NewGeminiEngine())
- registry.Register(NewOpenCodeEngine())
+ registry.Register(NewCrushEngine())
agenticEngineLog.Printf("Registered %d engines", len(registry.engines))
return registry
diff --git a/pkg/workflow/compiler_orchestrator_engine.go b/pkg/workflow/compiler_orchestrator_engine.go
index d22613dd0e..19dd5c07a1 100644
--- a/pkg/workflow/compiler_orchestrator_engine.go
+++ b/pkg/workflow/compiler_orchestrator_engine.go
@@ -275,7 +275,7 @@ func (c *Compiler) setupEngineAndImports(result *parser.FrontmatterResult, clean
agenticEngine := resolvedEngine.Runtime
// Call RenderConfig to allow the runtime adapter to emit config files or metadata.
- // Most engines return nil, nil here; engines like OpenCode use this to write
+ // Most engines return nil, nil here; engines like Crush use this to write
// provider/model config files before the execution steps run.
orchestratorEngineLog.Printf("Calling RenderConfig for engine: %s", engineSetting)
configSteps, err := agenticEngine.RenderConfig(resolvedEngine)
diff --git a/pkg/workflow/compiler_yaml_lookups.go b/pkg/workflow/compiler_yaml_lookups.go
index 0d76115c92..f000473d56 100644
--- a/pkg/workflow/compiler_yaml_lookups.go
+++ b/pkg/workflow/compiler_yaml_lookups.go
@@ -33,6 +33,8 @@ func getInstallationVersion(data *WorkflowData, engine CodingAgentEngine) string
return string(constants.DefaultClaudeCodeVersion)
case "codex":
return string(constants.DefaultCodexVersion)
+ case "crush":
+ return string(constants.DefaultCrushVersion)
default:
// Custom or unknown engines don't have a default version
compilerYamlLookupsLog.Printf("No default version for custom engine: %s", engineID)
@@ -45,7 +47,7 @@ func getInstallationVersion(data *WorkflowData, engine CodingAgentEngine) string
// (i.e. the provider chooses the model automatically), or empty string for custom/unknown engines.
func getDefaultAgentModel(engineID string) string {
switch engineID {
- case "copilot", "claude", "codex", "gemini", "opencode":
+ case "copilot", "claude", "codex", "gemini", "crush":
return "auto"
default:
return ""
diff --git a/pkg/workflow/opencode_engine.go b/pkg/workflow/crush_engine.go
similarity index 57%
rename from pkg/workflow/opencode_engine.go
rename to pkg/workflow/crush_engine.go
index 807674b3fe..d3bfb4bc1c 100644
--- a/pkg/workflow/opencode_engine.go
+++ b/pkg/workflow/crush_engine.go
@@ -9,47 +9,47 @@ import (
"github.com/github/gh-aw/pkg/logger"
)
-var opencodeLog = logger.New("workflow:opencode_engine")
+var crushLog = logger.New("workflow:crush_engine")
-// OpenCodeEngine represents the OpenCode CLI agentic engine.
-// OpenCode is a provider-agnostic, open-source AI coding agent that supports
+// CrushEngine represents the Crush CLI agentic engine.
+// Crush is a provider-agnostic, open-source AI coding agent that supports
// 75+ models via BYOK (Bring Your Own Key).
-type OpenCodeEngine struct {
+type CrushEngine struct {
BaseEngine
}
-func NewOpenCodeEngine() *OpenCodeEngine {
- return &OpenCodeEngine{
+func NewCrushEngine() *CrushEngine {
+ return &CrushEngine{
BaseEngine: BaseEngine{
- id: "opencode",
- displayName: "OpenCode",
- description: "OpenCode CLI with headless mode and multi-provider LLM support",
- experimental: true, // Start as experimental until smoke tests pass consistently
- supportsToolsAllowlist: false, // OpenCode manages its own tool permissions via opencode.jsonc
- supportsMaxTurns: false, // No --max-turns flag in opencode run
- supportsWebSearch: false, // Has built-in websearch but not exposed via gh-aw neutral tools yet
- llmGatewayPort: constants.OpenCodeLLMGatewayPort, // Port 10004
+ id: "crush",
+ displayName: "Crush",
+ description: "Crush CLI with headless mode and multi-provider LLM support",
+ experimental: true, // Start as experimental until smoke tests pass consistently
+ supportsToolsAllowlist: false, // Crush manages its own tool permissions via .crush.json
+ supportsMaxTurns: false, // No --max-turns flag in crush run
+ supportsWebSearch: false, // Has built-in websearch but not exposed via gh-aw neutral tools yet
+ llmGatewayPort: constants.CrushLLMGatewayPort, // Port 10004
},
}
}
-// SupportsLLMGateway returns the LLM gateway port for OpenCode engine
-func (e *OpenCodeEngine) SupportsLLMGateway() int {
- return constants.OpenCodeLLMGatewayPort
+// SupportsLLMGateway returns the LLM gateway port for Crush engine
+func (e *CrushEngine) SupportsLLMGateway() int {
+ return constants.CrushLLMGatewayPort
}
-// GetModelEnvVarName returns the native environment variable name that the OpenCode CLI uses
-// for model selection. Setting OPENCODE_MODEL is equivalent to passing --model to the CLI.
-func (e *OpenCodeEngine) GetModelEnvVarName() string {
- return constants.OpenCodeCLIModelEnvVar
+// GetModelEnvVarName returns the native environment variable name that the Crush CLI uses
+// for model selection. Setting CRUSH_MODEL is equivalent to passing --model to the CLI.
+func (e *CrushEngine) GetModelEnvVarName() string {
+ return constants.CrushCLIModelEnvVar
}
-// GetRequiredSecretNames returns the list of secrets required by the OpenCode engine.
-// By default, OpenCode routes through the Copilot API using COPILOT_GITHUB_TOKEN
+// GetRequiredSecretNames returns the list of secrets required by the Crush engine.
+// By default, Crush routes through the Copilot API using COPILOT_GITHUB_TOKEN
// (or ${{ github.token }} when copilot-requests feature is enabled).
// Additional provider API keys can be added via engine.env overrides.
-func (e *OpenCodeEngine) GetRequiredSecretNames(workflowData *WorkflowData) []string {
- opencodeLog.Print("Collecting required secrets for OpenCode engine")
+func (e *CrushEngine) GetRequiredSecretNames(workflowData *WorkflowData) []string {
+ crushLog.Print("Collecting required secrets for Crush engine")
var secrets []string
// Default: Copilot routing via COPILOT_GITHUB_TOKEN.
@@ -72,7 +72,7 @@ func (e *OpenCodeEngine) GetRequiredSecretNames(workflowData *WorkflowData) []st
// Add GitHub token for GitHub MCP server if present
if hasGitHubTool(workflowData.ParsedTools) {
- opencodeLog.Print("Adding GITHUB_MCP_SERVER_TOKEN secret")
+ crushLog.Print("Adding GITHUB_MCP_SERVER_TOKEN secret")
secrets = append(secrets, "GITHUB_MCP_SERVER_TOKEN")
}
@@ -82,99 +82,98 @@ func (e *OpenCodeEngine) GetRequiredSecretNames(workflowData *WorkflowData) []st
secrets = append(secrets, varName)
}
if len(headerSecrets) > 0 {
- opencodeLog.Printf("Added %d HTTP MCP header secrets", len(headerSecrets))
+ crushLog.Printf("Added %d HTTP MCP header secrets", len(headerSecrets))
}
return secrets
}
-// GetInstallationSteps returns the GitHub Actions steps needed to install OpenCode CLI
-func (e *OpenCodeEngine) GetInstallationSteps(workflowData *WorkflowData) []GitHubActionStep {
- opencodeLog.Printf("Generating installation steps for OpenCode engine: workflow=%s", workflowData.Name)
+// GetInstallationSteps returns the GitHub Actions steps needed to install Crush CLI
+func (e *CrushEngine) GetInstallationSteps(workflowData *WorkflowData) []GitHubActionStep {
+ crushLog.Printf("Generating installation steps for Crush engine: workflow=%s", workflowData.Name)
// Skip installation if custom command is specified
if workflowData.EngineConfig != nil && workflowData.EngineConfig.Command != "" {
- opencodeLog.Printf("Skipping installation steps: custom command specified (%s)", workflowData.EngineConfig.Command)
+ crushLog.Printf("Skipping installation steps: custom command specified (%s)", workflowData.EngineConfig.Command)
return []GitHubActionStep{}
}
npmSteps := BuildStandardNpmEngineInstallSteps(
- "opencode-ai",
- string(constants.DefaultOpenCodeVersion),
- "Install OpenCode CLI",
- "opencode",
+ "@charmland/crush",
+ string(constants.DefaultCrushVersion),
+ "Install Crush CLI",
+ "crush",
workflowData,
)
return BuildNpmEngineInstallStepsWithAWF(npmSteps, workflowData)
}
-// GetSecretValidationStep returns the secret validation step for the OpenCode engine.
+// GetSecretValidationStep returns the secret validation step for the Crush engine.
// Returns an empty step if copilot-requests feature is enabled (uses GitHub Actions token).
-func (e *OpenCodeEngine) GetSecretValidationStep(workflowData *WorkflowData) GitHubActionStep {
+func (e *CrushEngine) GetSecretValidationStep(workflowData *WorkflowData) GitHubActionStep {
if isFeatureEnabled(constants.CopilotRequestsFeatureFlag, workflowData) {
- opencodeLog.Print("Skipping secret validation step: copilot-requests feature enabled, using GitHub Actions token")
+ crushLog.Print("Skipping secret validation step: copilot-requests feature enabled, using GitHub Actions token")
return GitHubActionStep{}
}
return BuildDefaultSecretValidationStep(
workflowData,
[]string{"COPILOT_GITHUB_TOKEN"},
- "OpenCode CLI",
- "https://github.github.com/gh-aw/reference/engines/#opencode",
+ "Crush CLI",
+ "https://github.github.com/gh-aw/reference/engines/#crush",
)
}
-// GetAgentManifestFiles returns OpenCode-specific instruction files that should be
+// GetAgentManifestFiles returns Crush-specific instruction files that should be
// treated as security-sensitive manifests. Modifying these files can change the
// agent's instructions, permissions, or configuration on the next run.
-// opencode.jsonc is the primary OpenCode config file; AGENTS.md is the cross-engine
-// convention that OpenCode also reads.
-func (e *OpenCodeEngine) GetAgentManifestFiles() []string {
- return []string{"opencode.jsonc", "AGENTS.md"}
+// .crush.json is the primary Crush config file; AGENTS.md is the cross-engine
+// convention that Crush also reads.
+func (e *CrushEngine) GetAgentManifestFiles() []string {
+ return []string{".crush.json", "AGENTS.md"}
}
-// GetAgentManifestPathPrefixes returns OpenCode-specific config directory prefixes
+// GetAgentManifestPathPrefixes returns Crush-specific config directory prefixes
// that must be protected from fork PR injection.
-// The .opencode/ directory contains agent configuration, instructions, and other
+// The .crush/ directory contains agent configuration, instructions, and other
// settings that could alter agent behaviour.
-func (e *OpenCodeEngine) GetAgentManifestPathPrefixes() []string {
- return []string{".opencode/"}
+func (e *CrushEngine) GetAgentManifestPathPrefixes() []string {
+ return []string{".crush/"}
}
-// GetDeclaredOutputFiles returns the output files that OpenCode may produce.
-func (e *OpenCodeEngine) GetDeclaredOutputFiles() []string {
+// GetDeclaredOutputFiles returns the output files that Crush may produce.
+func (e *CrushEngine) GetDeclaredOutputFiles() []string {
return []string{}
}
-// GetExecutionSteps returns the GitHub Actions steps for executing OpenCode
-func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile string) []GitHubActionStep {
- opencodeLog.Printf("Generating execution steps for OpenCode engine: workflow=%s, firewall=%v",
+// GetExecutionSteps returns the GitHub Actions steps for executing Crush
+func (e *CrushEngine) GetExecutionSteps(workflowData *WorkflowData, logFile string) []GitHubActionStep {
+ crushLog.Printf("Generating execution steps for Crush engine: workflow=%s, firewall=%v",
workflowData.Name, isFirewallEnabled(workflowData))
var steps []GitHubActionStep
- // Step 1: Write opencode.jsonc config (permissions)
- configStep := e.generateOpenCodeConfigStep(workflowData)
+ // Step 1: Write .crush.json config (permissions)
+ configStep := e.generateCrushConfigStep(workflowData)
steps = append(steps, configStep)
// Step 2: Build CLI arguments
- var opencodeArgs []string
+ var crushArgs []string
modelConfigured := workflowData.EngineConfig != nil && workflowData.EngineConfig.Model != ""
// Enable verbose logging for debugging in CI
- opencodeArgs = append(opencodeArgs, "--print-logs")
- opencodeArgs = append(opencodeArgs, "--log-level", "DEBUG")
+ crushArgs = append(crushArgs, "--verbose")
- // Prompt from file (positional argument to `opencode run`).
+ // Prompt from file (positional argument to `crush run`).
// Keep this outside shellJoinArgs so command substitution expands at runtime.
promptArg := "\"$(cat /tmp/gh-aw/aw-prompts/prompt.txt)\""
// Build command name
- commandName := "opencode"
+ commandName := "crush"
if workflowData.EngineConfig != nil && workflowData.EngineConfig.Command != "" {
commandName = workflowData.EngineConfig.Command
}
- opencodeCommand := fmt.Sprintf("%s run %s %s", commandName, shellJoinArgs(opencodeArgs), promptArg)
+ crushCommand := fmt.Sprintf("%s run %s %s", commandName, shellJoinArgs(crushArgs), promptArg)
// AWF wrapping
firewallEnabled := isFirewallEnabled(workflowData)
@@ -185,7 +184,7 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
if modelConfigured {
model = workflowData.EngineConfig.Model
}
- allowedDomains := GetOpenCodeAllowedDomainsWithToolsAndRuntimes(
+ allowedDomains := GetCrushAllowedDomainsWithToolsAndRuntimes(
model,
workflowData.NetworkPermissions,
workflowData.Tools,
@@ -193,18 +192,18 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
)
npmPathSetup := GetNpmBinPathSetup()
- opencodeCommandWithPath := fmt.Sprintf("%s && %s", npmPathSetup, opencodeCommand)
+ crushCommandWithPath := fmt.Sprintf("%s && %s", npmPathSetup, crushCommand)
command = BuildAWFCommand(AWFCommandConfig{
- EngineName: "opencode",
- EngineCommand: opencodeCommandWithPath,
+ EngineName: "crush",
+ EngineCommand: crushCommandWithPath,
LogFile: logFile,
WorkflowData: workflowData,
UsesTTY: false,
AllowedDomains: allowedDomains,
})
} else {
- command = fmt.Sprintf("set -o pipefail\n%s 2>&1 | tee -a %s", opencodeCommand, logFile)
+ command = fmt.Sprintf("set -o pipefail\n%s 2>&1 | tee -a %s", crushCommand, logFile)
}
// Environment variables — default to Copilot routing (OpenAI-compatible API).
@@ -215,7 +214,7 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
useCopilotRequests := isFeatureEnabled(constants.CopilotRequestsFeatureFlag, workflowData)
if useCopilotRequests {
openaiAPIKey = "${{ github.token }}"
- opencodeLog.Print("Using GitHub Actions token as OPENAI_API_KEY (copilot-requests feature enabled)")
+ crushLog.Print("Using GitHub Actions token as OPENAI_API_KEY (copilot-requests feature enabled)")
} else {
openaiAPIKey = "${{ secrets.COPILOT_GITHUB_TOKEN }}"
}
@@ -229,13 +228,13 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
// MCP config path
if HasMCPServers(workflowData) {
- env["GH_AW_MCP_CONFIG"] = "${{ github.workspace }}/opencode.jsonc"
+ env["GH_AW_MCP_CONFIG"] = "${{ github.workspace }}/.crush.json"
}
// LLM gateway base URL override (default Copilot routing via OpenAI-compatible endpoint)
if firewallEnabled {
env["OPENAI_BASE_URL"] = fmt.Sprintf("http://host.docker.internal:%d",
- constants.OpenCodeLLMGatewayPort)
+ constants.CrushLLMGatewayPort)
}
// Safe outputs env
@@ -243,9 +242,9 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
// Model env var (only when explicitly configured)
if modelConfigured {
- opencodeLog.Printf("Setting %s env var for model: %s",
- constants.OpenCodeCLIModelEnvVar, workflowData.EngineConfig.Model)
- env[constants.OpenCodeCLIModelEnvVar] = workflowData.EngineConfig.Model
+ crushLog.Printf("Setting %s env var for model: %s",
+ constants.CrushCLIModelEnvVar, workflowData.EngineConfig.Model)
+ env[constants.CrushCLIModelEnvVar] = workflowData.EngineConfig.Model
}
// Custom env from engine config (allows provider override)
@@ -261,7 +260,7 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
// Build execution step
stepLines := []string{
- " - name: Execute OpenCode CLI",
+ " - name: Execute Crush CLI",
" id: agentic_execution",
}
allowedSecrets := e.GetRequiredSecretNames(workflowData)
@@ -272,16 +271,16 @@ func (e *OpenCodeEngine) GetExecutionSteps(workflowData *WorkflowData, logFile s
return steps
}
-// generateOpenCodeConfigStep writes opencode.jsonc with all permissions set to allow
+// generateCrushConfigStep writes .crush.json with all permissions set to allow
// to prevent CI hanging on permission prompts.
-func (e *OpenCodeEngine) generateOpenCodeConfigStep(_ *WorkflowData) GitHubActionStep {
+func (e *CrushEngine) generateCrushConfigStep(_ *WorkflowData) GitHubActionStep {
// Build the config JSON with all permissions set to allow
configJSON := `{"agent":{"build":{"permissions":{"bash":"allow","edit":"allow","read":"allow","glob":"allow","grep":"allow","write":"allow","webfetch":"allow","websearch":"allow"}}}}`
// Shell command to write or merge the config with restrictive permissions
command := fmt.Sprintf(`umask 077
mkdir -p "$GITHUB_WORKSPACE"
-CONFIG="$GITHUB_WORKSPACE/opencode.jsonc"
+CONFIG="$GITHUB_WORKSPACE/.crush.json"
BASE_CONFIG='%s'
if [ -f "$CONFIG" ]; then
MERGED=$(jq -n --argjson base "$BASE_CONFIG" --argjson existing "$(cat "$CONFIG")" '$existing * $base')
@@ -291,7 +290,7 @@ else
fi
chmod 600 "$CONFIG"`, configJSON)
- stepLines := []string{" - name: Write OpenCode configuration"}
+ stepLines := []string{" - name: Write Crush configuration"}
stepLines = FormatStepWithCommandAndEnv(stepLines, command, nil)
return GitHubActionStep(stepLines)
}
diff --git a/pkg/workflow/opencode_engine_test.go b/pkg/workflow/crush_engine_test.go
similarity index 82%
rename from pkg/workflow/opencode_engine_test.go
rename to pkg/workflow/crush_engine_test.go
index 95a3b47ebd..741764e220 100644
--- a/pkg/workflow/opencode_engine_test.go
+++ b/pkg/workflow/crush_engine_test.go
@@ -11,25 +11,25 @@ import (
"github.com/stretchr/testify/require"
)
-func TestOpenCodeEngine(t *testing.T) {
- engine := NewOpenCodeEngine()
+func TestCrushEngine(t *testing.T) {
+ engine := NewCrushEngine()
t.Run("engine identity", func(t *testing.T) {
- assert.Equal(t, "opencode", engine.GetID(), "Engine ID should be 'opencode'")
- assert.Equal(t, "OpenCode", engine.GetDisplayName(), "Display name should be 'OpenCode'")
+ assert.Equal(t, "crush", engine.GetID(), "Engine ID should be 'crush'")
+ assert.Equal(t, "Crush", engine.GetDisplayName(), "Display name should be 'Crush'")
assert.NotEmpty(t, engine.GetDescription(), "Description should not be empty")
- assert.True(t, engine.IsExperimental(), "OpenCode engine should be experimental")
+ assert.True(t, engine.IsExperimental(), "Crush engine should be experimental")
})
t.Run("capabilities", func(t *testing.T) {
assert.False(t, engine.SupportsToolsAllowlist(), "Should not support tools allowlist")
assert.False(t, engine.SupportsMaxTurns(), "Should not support max turns")
assert.False(t, engine.SupportsWebSearch(), "Should not support built-in web search")
- assert.Equal(t, constants.OpenCodeLLMGatewayPort, engine.SupportsLLMGateway(), "Should support LLM gateway on port 10004")
+ assert.Equal(t, constants.CrushLLMGatewayPort, engine.SupportsLLMGateway(), "Should support LLM gateway on port 10004")
})
t.Run("model env var name", func(t *testing.T) {
- assert.Equal(t, "OPENCODE_MODEL", engine.GetModelEnvVarName(), "Should return OPENCODE_MODEL")
+ assert.Equal(t, "CRUSH_MODEL", engine.GetModelEnvVarName(), "Should return CRUSH_MODEL")
})
t.Run("required secrets basic", func(t *testing.T) {
@@ -94,13 +94,13 @@ func TestOpenCodeEngine(t *testing.T) {
t.Run("agent manifest files", func(t *testing.T) {
files := engine.GetAgentManifestFiles()
- assert.Contains(t, files, "opencode.jsonc", "Should include opencode.jsonc config file")
+ assert.Contains(t, files, ".crush.json", "Should include .crush.json config file")
assert.Contains(t, files, "AGENTS.md", "Should include cross-engine AGENTS.md")
})
t.Run("agent manifest path prefixes", func(t *testing.T) {
prefixes := engine.GetAgentManifestPathPrefixes()
- assert.Contains(t, prefixes, ".opencode/", "Should include .opencode/ config directory")
+ assert.Contains(t, prefixes, ".crush/", "Should include .crush/ config directory")
})
t.Run("secret validation step without copilot-requests", func(t *testing.T) {
@@ -124,8 +124,8 @@ func TestOpenCodeEngine(t *testing.T) {
})
}
-func TestOpenCodeEngineInstallation(t *testing.T) {
- engine := NewOpenCodeEngine()
+func TestCrushEngineInstallation(t *testing.T) {
+ engine := NewCrushEngine()
t.Run("standard installation", func(t *testing.T) {
workflowData := &WorkflowData{
@@ -135,7 +135,7 @@ func TestOpenCodeEngineInstallation(t *testing.T) {
steps := engine.GetInstallationSteps(workflowData)
require.NotEmpty(t, steps, "Should generate installation steps")
- // Should have at least: Node.js setup + Install OpenCode
+ // Should have at least: Node.js setup + Install Crush
assert.GreaterOrEqual(t, len(steps), 2, "Should have at least 2 installation steps")
})
@@ -143,7 +143,7 @@ func TestOpenCodeEngineInstallation(t *testing.T) {
workflowData := &WorkflowData{
Name: "test-workflow",
EngineConfig: &EngineConfig{
- Command: "/custom/opencode",
+ Command: "/custom/crush",
},
}
@@ -178,8 +178,8 @@ func TestOpenCodeEngineInstallation(t *testing.T) {
})
}
-func TestOpenCodeEngineExecution(t *testing.T) {
- engine := NewOpenCodeEngine()
+func TestCrushEngineExecution(t *testing.T) {
+ engine := NewCrushEngine()
t.Run("basic execution", func(t *testing.T) {
workflowData := &WorkflowData{
@@ -189,12 +189,12 @@ func TestOpenCodeEngineExecution(t *testing.T) {
steps := engine.GetExecutionSteps(workflowData, "/tmp/test.log")
require.Len(t, steps, 2, "Should generate config step and execution step")
- // steps[0] = Write OpenCode config, steps[1] = Execute OpenCode CLI
+ // steps[0] = Write Crush config, steps[1] = Execute Crush CLI
stepContent := strings.Join(steps[1], "\n")
- assert.Contains(t, stepContent, "name: Execute OpenCode CLI", "Should have correct step name")
+ assert.Contains(t, stepContent, "name: Execute Crush CLI", "Should have correct step name")
assert.Contains(t, stepContent, "id: agentic_execution", "Should have agentic_execution ID")
- assert.Contains(t, stepContent, "opencode run", "Should invoke opencode run command")
+ assert.Contains(t, stepContent, "crush run", "Should invoke crush run command")
assert.Contains(t, stepContent, `"$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"`, "Should include prompt argument")
assert.Contains(t, stepContent, "/tmp/test.log", "Should include log file")
assert.Contains(t, stepContent, "OPENAI_API_KEY: ${{ secrets.COPILOT_GITHUB_TOKEN }}", "Should set OPENAI_API_KEY from COPILOT_GITHUB_TOKEN")
@@ -229,8 +229,8 @@ func TestOpenCodeEngineExecution(t *testing.T) {
stepContent := strings.Join(steps[1], "\n")
- // Model is passed via the native OPENCODE_MODEL env var
- assert.Contains(t, stepContent, "OPENCODE_MODEL: anthropic/claude-sonnet-4-20250514", "Should set OPENCODE_MODEL env var")
+ // Model is passed via the native CRUSH_MODEL env var
+ assert.Contains(t, stepContent, "CRUSH_MODEL: anthropic/claude-sonnet-4-20250514", "Should set CRUSH_MODEL env var")
})
t.Run("without model no model env var", func(t *testing.T) {
@@ -243,7 +243,7 @@ func TestOpenCodeEngineExecution(t *testing.T) {
stepContent := strings.Join(steps[1], "\n")
- assert.NotContains(t, stepContent, "OPENCODE_MODEL", "Should not include OPENCODE_MODEL when model is unconfigured")
+ assert.NotContains(t, stepContent, "CRUSH_MODEL", "Should not include CRUSH_MODEL when model is unconfigured")
})
t.Run("with MCP servers", func(t *testing.T) {
@@ -262,14 +262,14 @@ func TestOpenCodeEngineExecution(t *testing.T) {
stepContent := strings.Join(steps[1], "\n")
- assert.Contains(t, stepContent, "GH_AW_MCP_CONFIG: ${{ github.workspace }}/opencode.jsonc", "Should set MCP config env var")
+ assert.Contains(t, stepContent, "GH_AW_MCP_CONFIG: ${{ github.workspace }}/.crush.json", "Should set MCP config env var")
})
t.Run("with custom command", func(t *testing.T) {
workflowData := &WorkflowData{
Name: "test-workflow",
EngineConfig: &EngineConfig{
- Command: "/custom/opencode",
+ Command: "/custom/crush",
},
}
@@ -278,7 +278,7 @@ func TestOpenCodeEngineExecution(t *testing.T) {
stepContent := strings.Join(steps[1], "\n")
- assert.Contains(t, stepContent, "/custom/opencode", "Should use custom command")
+ assert.Contains(t, stepContent, "/custom/crush", "Should use custom command")
})
t.Run("engine env overrides default token expression", func(t *testing.T) {
@@ -330,15 +330,15 @@ func TestOpenCodeEngineExecution(t *testing.T) {
configContent := strings.Join(steps[0], "\n")
execContent := strings.Join(steps[1], "\n")
- assert.Contains(t, configContent, "Write OpenCode configuration", "First step should be Write OpenCode configuration")
- assert.Contains(t, configContent, "opencode.jsonc", "Config step should reference opencode.jsonc")
+ assert.Contains(t, configContent, "Write Crush configuration", "First step should be Write Crush configuration")
+ assert.Contains(t, configContent, ".crush.json", "Config step should reference .crush.json")
assert.Contains(t, configContent, "permissions", "Config step should set permissions")
- assert.Contains(t, execContent, "Execute OpenCode CLI", "Second step should be Execute OpenCode CLI")
+ assert.Contains(t, execContent, "Execute Crush CLI", "Second step should be Execute Crush CLI")
})
}
-func TestOpenCodeEngineFirewallIntegration(t *testing.T) {
- engine := NewOpenCodeEngine()
+func TestCrushEngineFirewallIntegration(t *testing.T) {
+ engine := NewCrushEngine()
t.Run("firewall enabled", func(t *testing.T) {
workflowData := &WorkflowData{
@@ -387,20 +387,20 @@ func TestOpenCodeEngineFirewallIntegration(t *testing.T) {
func TestExtractProviderFromModel(t *testing.T) {
t.Run("standard provider/model format", func(t *testing.T) {
- assert.Equal(t, "anthropic", extractProviderFromModel("anthropic/claude-sonnet-4-20250514"))
- assert.Equal(t, "openai", extractProviderFromModel("openai/gpt-4.1"))
- assert.Equal(t, "google", extractProviderFromModel("google/gemini-2.5-pro"))
+ assert.Equal(t, "anthropic", extractCrushProviderFromModel("anthropic/claude-sonnet-4-20250514"))
+ assert.Equal(t, "openai", extractCrushProviderFromModel("openai/gpt-4.1"))
+ assert.Equal(t, "google", extractCrushProviderFromModel("google/gemini-2.5-pro"))
})
t.Run("empty model defaults to copilot", func(t *testing.T) {
- assert.Equal(t, "copilot", extractProviderFromModel(""))
+ assert.Equal(t, "copilot", extractCrushProviderFromModel(""))
})
t.Run("no slash defaults to copilot", func(t *testing.T) {
- assert.Equal(t, "copilot", extractProviderFromModel("claude-sonnet-4-20250514"))
+ assert.Equal(t, "copilot", extractCrushProviderFromModel("claude-sonnet-4-20250514"))
})
t.Run("case insensitive provider", func(t *testing.T) {
- assert.Equal(t, "openai", extractProviderFromModel("OpenAI/gpt-4.1"))
+ assert.Equal(t, "openai", extractCrushProviderFromModel("OpenAI/gpt-4.1"))
})
}
diff --git a/pkg/workflow/crush_mcp.go b/pkg/workflow/crush_mcp.go
new file mode 100644
index 0000000000..31ff173a36
--- /dev/null
+++ b/pkg/workflow/crush_mcp.go
@@ -0,0 +1,21 @@
+package workflow
+
+import (
+ "strings"
+
+ "github.com/github/gh-aw/pkg/logger"
+)
+
+var crushMCPLog = logger.New("workflow:crush_mcp")
+
+// RenderMCPConfig renders MCP server configuration for Crush CLI
+func (e *CrushEngine) RenderMCPConfig(sb *strings.Builder, tools map[string]any, mcpTools []string, workflowData *WorkflowData) error {
+ crushMCPLog.Printf("Rendering MCP config for Crush: tool_count=%d, mcp_tool_count=%d", len(tools), len(mcpTools))
+
+ // Crush uses JSON format without Copilot-specific fields and multi-line args
+ return renderStandardJSONMCPConfig(sb, tools, mcpTools, workflowData,
+ "/tmp/gh-aw/mcp-config/mcp-servers.json", false, false,
+ func(builder *strings.Builder, toolName string, toolConfig map[string]any, isLast bool) error {
+ return renderCustomMCPConfigWrapperWithContext(builder, toolName, toolConfig, isLast, workflowData)
+ }, nil)
+}
diff --git a/pkg/workflow/data/engines/crush.md b/pkg/workflow/data/engines/crush.md
new file mode 100644
index 0000000000..b095d4d745
--- /dev/null
+++ b/pkg/workflow/data/engines/crush.md
@@ -0,0 +1,16 @@
+---
+engine:
+ id: crush
+ display-name: Crush
+ description: Crush CLI with headless mode and multi-provider LLM support
+ runtime-id: crush
+ provider:
+ name: crush
+ auth:
+ - role: api-key
+ secret: COPILOT_GITHUB_TOKEN
+---
+
+
diff --git a/pkg/workflow/data/engines/opencode.md b/pkg/workflow/data/engines/opencode.md
deleted file mode 100644
index d5a2aad0f9..0000000000
--- a/pkg/workflow/data/engines/opencode.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-engine:
- id: opencode
- display-name: OpenCode
- description: OpenCode CLI with headless mode and multi-provider LLM support
- runtime-id: opencode
- provider:
- name: opencode
- auth:
- - role: api-key
- secret: COPILOT_GITHUB_TOKEN
----
-
-
diff --git a/pkg/workflow/domains.go b/pkg/workflow/domains.go
index f7d497cb50..03a7303756 100644
--- a/pkg/workflow/domains.go
+++ b/pkg/workflow/domains.go
@@ -110,18 +110,20 @@ var GeminiDefaultDomains = []string{
"registry.npmjs.org",
}
-// OpenCodeBaseDefaultDomains are the default domains required for OpenCode CLI operation.
-// OpenCode is BYOK (any provider), so provider-specific domains are added dynamically
-// based on the model prefix via GetOpenCodeDefaultDomains().
-var OpenCodeBaseDefaultDomains = []string{
+// CrushBaseDefaultDomains are the default domains required for Crush CLI operation.
+// Crush is BYOK (any provider), so provider-specific domains are added dynamically
+// based on the model prefix via GetCrushDefaultDomains().
+var CrushBaseDefaultDomains = []string{
"host.docker.internal", // MCP gateway / API proxy access
- "opencode.ai", // OpenCode telemetry/config (required for startup)
- "registry.npmjs.org", // npm package downloads
+ "charm.land", // Crush telemetry/docs endpoints
+ "github.com", // Crush provider updates (Catwalk) and metadata
+ "raw.githubusercontent.com",
+ "registry.npmjs.org", // npm package downloads
}
-// openCodeProviderDomains maps provider prefixes to their API domains.
-// Used by extractProviderFromModel() and GetOpenCodeDefaultDomains().
-var openCodeProviderDomains = map[string]string{
+// crushProviderDomains maps provider prefixes to their API domains.
+// Used by extractCrushProviderFromModel() and GetCrushDefaultDomains().
+var crushProviderDomains = map[string]string{
"copilot": "api.githubcopilot.com",
"anthropic": "api.anthropic.com",
"openai": "api.openai.com",
@@ -132,22 +134,24 @@ var openCodeProviderDomains = map[string]string{
"xai": "api.x.ai",
}
-// OpenCodeDefaultDomains are the static default domains for backward compatibility.
-// The dynamic path (GetOpenCodeDefaultDomains) resolves provider-specific domains
-// based on the model prefix and uses OpenCodeBaseDefaultDomains as the base.
-var OpenCodeDefaultDomains = []string{
+// CrushDefaultDomains are the static default domains for backward compatibility.
+// The dynamic path (GetCrushDefaultDomains) resolves provider-specific domains
+// based on the model prefix and uses CrushBaseDefaultDomains as the base.
+var CrushDefaultDomains = []string{
"api.githubcopilot.com", // Default provider (Copilot routing)
"api.openai.com", // Direct OpenAI provider access
"generativelanguage.googleapis.com", // Google/Gemini provider
"host.docker.internal", // MCP gateway / API proxy access
- "opencode.ai", // OpenCode telemetry/config (required for startup)
- "registry.npmjs.org", // npm package downloads
+ "charm.land", // Crush telemetry/docs endpoints
+ "github.com", // Crush provider updates (Catwalk) and metadata
+ "raw.githubusercontent.com",
+ "registry.npmjs.org", // npm package downloads
}
-// extractProviderFromModel extracts the provider name from an OpenCode model string.
-// OpenCode uses "provider/model" format (e.g., "anthropic/claude-sonnet-4-20250514").
+// extractCrushProviderFromModel extracts the provider name from a Crush model string.
+// Crush uses "provider/model" format (e.g., "anthropic/claude-sonnet-4-20250514").
// Returns the provider prefix, or "copilot" as default if no slash is found.
-func extractProviderFromModel(model string) string {
+func extractCrushProviderFromModel(model string) string {
if model == "" {
return "copilot"
}
@@ -158,25 +162,25 @@ func extractProviderFromModel(model string) string {
return strings.ToLower(parts[0])
}
-// GetOpenCodeDefaultDomains returns the default domains for OpenCode based on the model provider.
-// It starts with OpenCodeBaseDefaultDomains and adds the provider-specific API domain.
-func GetOpenCodeDefaultDomains(model string) []string {
- provider := extractProviderFromModel(model)
- domains := make([]string, 0, len(OpenCodeBaseDefaultDomains)+1)
- domains = append(domains, OpenCodeBaseDefaultDomains...)
+// GetCrushDefaultDomains returns the default domains for Crush based on the model provider.
+// It starts with CrushBaseDefaultDomains and adds the provider-specific API domain.
+func GetCrushDefaultDomains(model string) []string {
+ provider := extractCrushProviderFromModel(model)
+ domains := make([]string, 0, len(CrushBaseDefaultDomains)+1)
+ domains = append(domains, CrushBaseDefaultDomains...)
- if domain, ok := openCodeProviderDomains[provider]; ok {
+ if domain, ok := crushProviderDomains[provider]; ok {
domains = append(domains, domain)
}
return domains
}
-// GetOpenCodeAllowedDomainsWithToolsAndRuntimes merges OpenCode default domains with NetworkPermissions, HTTP MCP server domains, and runtime ecosystem domains.
+// GetCrushAllowedDomainsWithToolsAndRuntimes merges Crush default domains with NetworkPermissions, HTTP MCP server domains, and runtime ecosystem domains.
// Pass the selected model (e.g. "anthropic/claude-sonnet-4-20250514") so provider-specific
// API domains are included. Returns a deduplicated, sorted, comma-separated string suitable for AWF's --allow-domains flag.
-func GetOpenCodeAllowedDomainsWithToolsAndRuntimes(model string, network *NetworkPermissions, tools map[string]any, runtimes map[string]any) string {
- return GetAllowedDomainsForEngineWithModel(constants.OpenCodeEngine, model, network, tools, runtimes)
+func GetCrushAllowedDomainsWithToolsAndRuntimes(model string, network *NetworkPermissions, tools map[string]any, runtimes map[string]any) string {
+ return GetAllowedDomainsForEngineWithModel(constants.CrushEngine, model, network, tools, runtimes)
}
// PlaywrightDomains are the domains required for Playwright browser downloads
@@ -618,7 +622,7 @@ func mergeDomainsWithNetworkToolsAndRuntimes(defaultDomains []string, network *N
}
// engineDefaultDomains maps each engine to its static default required domains.
-// Engines with model-specific defaults (for example, OpenCode) are resolved in
+// Engines with model-specific defaults (for example, Crush) are resolved in
// getDefaultDomainsForEngine instead of being stored directly in this map.
var engineDefaultDomains = map[constants.EngineName][]string{
constants.CopilotEngine: CopilotDefaultDomains,
@@ -628,12 +632,12 @@ var engineDefaultDomains = map[constants.EngineName][]string{
}
// getDefaultDomainsForEngine returns the engine's default required domains.
-// OpenCode domains are model/provider-specific, so they must be resolved via
-// GetOpenCodeDefaultDomains(model) rather than the static engineDefaultDomains map.
+// Crush domains are model/provider-specific, so they must be resolved via
+// GetCrushDefaultDomains(model) rather than the static engineDefaultDomains map.
// Falls back to an empty default domain list for unknown engines.
func getDefaultDomainsForEngine(engine constants.EngineName, model string) []string {
- if engine == constants.OpenCodeEngine {
- return GetOpenCodeDefaultDomains(model)
+ if engine == constants.CrushEngine {
+ return GetCrushDefaultDomains(model)
}
return engineDefaultDomains[engine]
@@ -641,7 +645,7 @@ func getDefaultDomainsForEngine(engine constants.EngineName, model string) []str
// GetAllowedDomainsForEngineWithModel merges the engine's default domains with
// NetworkPermissions, HTTP MCP server domains, and runtime ecosystem domains.
-// For engines with model/provider-specific defaults (such as OpenCode), pass the
+// For engines with model/provider-specific defaults (such as Crush), pass the
// selected model so the correct default domains are included.
// Returns a deduplicated, sorted, comma-separated string suitable for AWF's
// --allow-domains flag.
@@ -653,7 +657,7 @@ func GetAllowedDomainsForEngineWithModel(engine constants.EngineName, model stri
// HTTP MCP server domains, and runtime ecosystem domains.
// Returns a deduplicated, sorted, comma-separated string suitable for AWF's --allow-domains flag.
// Falls back to an empty default domain list for unknown engines.
-// For model/provider-specific engines such as OpenCode, prefer
+// For model/provider-specific engines such as Crush, prefer
// GetAllowedDomainsForEngineWithModel so provider domains are included.
func GetAllowedDomainsForEngine(engine constants.EngineName, network *NetworkPermissions, tools map[string]any, runtimes map[string]any) string {
return GetAllowedDomainsForEngineWithModel(engine, "", network, tools, runtimes)
@@ -837,12 +841,12 @@ func (c *Compiler) computeAllowedDomainsForSanitization(data *WorkflowData) stri
base = GetClaudeAllowedDomainsWithToolsAndRuntimes(data.NetworkPermissions, data.Tools, data.Runtimes)
case "gemini":
base = GetGeminiAllowedDomainsWithToolsAndRuntimes(data.NetworkPermissions, data.Tools, data.Runtimes)
- case "opencode":
+ case "crush":
model := ""
if data.EngineConfig != nil {
model = data.EngineConfig.Model
}
- base = GetOpenCodeAllowedDomainsWithToolsAndRuntimes(model, data.NetworkPermissions, data.Tools, data.Runtimes)
+ base = GetCrushAllowedDomainsWithToolsAndRuntimes(model, data.NetworkPermissions, data.Tools, data.Runtimes)
default:
// For other engines, use network permissions only
domains := GetAllowedDomains(data.NetworkPermissions)
diff --git a/pkg/workflow/engine_catalog_test.go b/pkg/workflow/engine_catalog_test.go
index 65407e7786..6c2d58ef5d 100644
--- a/pkg/workflow/engine_catalog_test.go
+++ b/pkg/workflow/engine_catalog_test.go
@@ -21,7 +21,7 @@ func TestEngineCatalog_IDs(t *testing.T) {
require.NotEmpty(t, ids, "IDs() should return a non-empty list")
// Verify all built-in engines are present
- expectedIDs := []string{"claude", "codex", "copilot", "gemini", "opencode"}
+ expectedIDs := []string{"claude", "codex", "copilot", "crush", "gemini"}
assert.Equal(t, expectedIDs, ids, "IDs() should return all built-in engines in sorted order")
// Verify the list is sorted
@@ -82,7 +82,7 @@ func TestEngineCatalog_BuiltInsPresent(t *testing.T) {
registry := NewEngineRegistry()
catalog := NewEngineCatalog(registry)
- expected := []string{"claude", "codex", "copilot", "gemini", "opencode"}
+ expected := []string{"claude", "codex", "copilot", "gemini", "crush"}
catalogIDs := catalog.IDs()
for _, id := range expected {
assert.Contains(t, catalogIDs, id,
diff --git a/pkg/workflow/engine_definition.go b/pkg/workflow/engine_definition.go
index 855e4fed1c..41718ae308 100644
--- a/pkg/workflow/engine_definition.go
+++ b/pkg/workflow/engine_definition.go
@@ -15,7 +15,7 @@
//
// # Built-in Engines
//
-// NewEngineCatalog registers the five built-in engines: claude, codex, copilot, gemini, opencode.
+// NewEngineCatalog registers the five built-in engines: claude, codex, copilot, gemini, crush.
// Each EngineDefinition carries the engine's RuntimeID which maps to the corresponding
// CodingAgentEngine registered in the EngineRegistry.
//
@@ -181,7 +181,7 @@ type ResolvedEngineTarget struct {
}
// NewEngineCatalog creates an EngineCatalog that wraps the given EngineRegistry and
-// pre-registers the five built-in engine definitions (claude, codex, copilot, gemini, opencode)
+// pre-registers the five built-in engine definitions (claude, codex, copilot, gemini, crush)
// loaded from the embedded Markdown files in data/engines/*.md.
func NewEngineCatalog(registry *EngineRegistry) *EngineCatalog {
catalog := &EngineCatalog{
diff --git a/pkg/workflow/engine_definition_test.go b/pkg/workflow/engine_definition_test.go
index 9611bb22d6..49482cabc3 100644
--- a/pkg/workflow/engine_definition_test.go
+++ b/pkg/workflow/engine_definition_test.go
@@ -25,7 +25,7 @@ func TestNewEngineCatalog_BuiltIns(t *testing.T) {
{"codex", "Codex", "openai"},
{"copilot", "GitHub Copilot CLI", "github"},
{"gemini", "Google Gemini CLI", "google"},
- {"opencode", "OpenCode", "opencode"},
+ {"crush", "Crush", "crush"},
}
for _, tt := range tests {
diff --git a/pkg/workflow/opencode_mcp.go b/pkg/workflow/opencode_mcp.go
deleted file mode 100644
index c0f521a3de..0000000000
--- a/pkg/workflow/opencode_mcp.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package workflow
-
-import (
- "strings"
-
- "github.com/github/gh-aw/pkg/logger"
-)
-
-var opencodeMCPLog = logger.New("workflow:opencode_mcp")
-
-// RenderMCPConfig renders MCP server configuration for OpenCode CLI
-func (e *OpenCodeEngine) RenderMCPConfig(sb *strings.Builder, tools map[string]any, mcpTools []string, workflowData *WorkflowData) error {
- opencodeMCPLog.Printf("Rendering MCP config for OpenCode: tool_count=%d, mcp_tool_count=%d", len(tools), len(mcpTools))
-
- // OpenCode uses JSON format without Copilot-specific fields and multi-line args
- return renderStandardJSONMCPConfig(sb, tools, mcpTools, workflowData,
- "/tmp/gh-aw/mcp-config/mcp-servers.json", false, false,
- func(builder *strings.Builder, toolName string, toolConfig map[string]any, isLast bool) error {
- return renderCustomMCPConfigWrapperWithContext(builder, toolName, toolConfig, isLast, workflowData)
- }, nil)
-}
diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
index 65fc6d13a8..42c213d1b2 100644
--- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
+++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
@@ -87,13 +87,13 @@ jobs:
.claude
.codex
.gemini
- .opencode
+ .crush
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .crush"
+ GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md .crush.json"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -385,8 +385,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .crush"
+ GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md .crush.json"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
@@ -574,4 +574,3 @@ jobs:
setupGlobals(core, github, context, exec, io, getOctokit);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
-
diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
index 6b4dd00f8b..b1a0745cb8 100644
--- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
+++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
@@ -87,13 +87,13 @@ jobs:
.claude
.codex
.gemini
- .opencode
+ .crush
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .crush"
+ GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md .crush.json"
# poutine:ignore untrusted_checkout_exec
run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
- name: Check workflow lock file
@@ -386,8 +386,8 @@ jobs:
- name: Restore agent config folders from base branch
if: steps.checkout-pr.outcome == 'success'
env:
- GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .opencode"
- GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .gemini .github .crush"
+ GH_AW_AGENT_FILES: "AGENTS.md CLAUDE.md GEMINI.md .crush.json"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
- name: Clean git credentials
continue-on-error: true
@@ -575,4 +575,3 @@ jobs:
setupGlobals(core, github, context, exec, io, getOctokit);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
-