Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/actions/resolve-config/callers.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1670,14 +1670,15 @@ test("no run-claude-cli plugin-dirs or add-dirs value names runner.temp, RUNNER_
// under which the default mode denies every call no rule allows, as dontAsk
// does; check-permission-mode.sh accepts default for dontAsk on that basis.
// 7b362428: lane.cjs:311-312; 164c2809: lane.cjs:355-358; d02b8697 and e5167fc2: lane.cjs:357-358;
// ba7af78d291f10bd75651857a0db2357c23df0fe: lane.cjs:404-405; in cliArgs. A pin
// ba7af78d291f10bd75651857a0db2357c23df0fe and 30b251532b2e9f7e0c4215e1dee5be0d3c688743: lane.cjs:404-405; in cliArgs. A pin
// bump fails here until its lane.cjs is read and its SHA added.
const PERMISSION_PROMPTS_NONE_LAUNCHERS = new Set([
"7b362428c76085a160e28656cd2c75c3147a69ff",
"164c2809f6150429b6f24d4a2777bb377af953d9",
"d02b8697e092705153f0996549b05f95a446bb52",
"e5167fc29d948ab7d0923cf62f5ea9eeeef8e9e8",
"ba7af78d291f10bd75651857a0db2357c23df0fe",
"30b251532b2e9f7e0c4215e1dee5be0d3c688743",
]);

test("every run-claude-cli step pin in this repo's workflows is a launcher checked to pass --permission-prompts none", () => {
Expand Down Expand Up @@ -3889,7 +3890,7 @@ test("scan job: every gate, skip and launcher class value the runner sets passes
const schema = JSON.parse(read("../../../docs/conventions/pr-pipeline/pr-pipeline.schema.json"));
const gateReasons = Object.keys(JSON.parse(read("../report-check-run/gate-skip-reasons.json")));
// run-claude-cli's failure classes, the keys of SUMMARY_NOTES in lane.cjs at
// the pinned ba7af78d291f10bd75651857a0db2357c23df0fe. cant-fail-ok: an external contract's value list.
// the pinned 30b251532b2e9f7e0c4215e1dee5be0d3c688743. cant-fail-ok: an external contract's value list.
const laneClasses = ["credit-stop", "rate-limit", "auth", "overloaded", "max-turns", "timeout", "other"];
const cases = [
...schema.$defs["skip-reason"].enum.map((value) => ["skip-reason", value]),
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/pr-verify/probe/replay.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const REPOSITORY = "melodic-software/claude-code-plugins";
// apply-claude-managed-settings to. cliArgs, LEG_ENV, CLI_VERSION and
// MANAGED_SETTINGS were read from that SHA; the parity test fails when the
// pin moves, so they are read again.
export const RUN_CLAUDE_CLI_PIN = "ba7af78d291f10bd75651857a0db2357c23df0fe";
export const RUN_CLAUDE_CLI_PIN = "30b251532b2e9f7e0c4215e1dee5be0d3c688743";
export const CLI_VERSION = "latest";
export const MANAGED_SETTINGS = Object.freeze({
apiKeyHelper: "",
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/maintenance-audit-test-selection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:
.github/requirements-ci.txt
plugins/animation/requirements.txt
- name: Install and verify ShellCheck toolchain
uses: melodic-software/ci-workflows/.github/actions/shellcheck@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/shellcheck@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
paths: plugins/bash-format
rcfile: .shellcheckrc
Expand Down
42 changes: 21 additions & 21 deletions .github/workflows/pr-require-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ jobs:
- name: Match the changed files against the filter groups
id: match
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/detect-changes@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/detect-changes@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
filters: |
shell:
Expand Down Expand Up @@ -878,7 +878,7 @@ jobs:
- name: Lint markdown
id: markdown
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/markdownlint@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/markdownlint@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
config: .markdownlint-cli2.jsonc
globs: ${{ steps.changed_md.outputs.globs }}
Expand All @@ -903,7 +903,7 @@ jobs:
- name: Spell-check
id: typos
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/typos@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/typos@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
config: _typos.toml
paths: ${{ steps.typos_paths.outputs.paths }}
Expand All @@ -926,7 +926,7 @@ jobs:
- name: Scan for secrets
id: gitleaks
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/gitleaks@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/gitleaks@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
config: .gitleaks.toml
scan-mode: git
Expand All @@ -941,7 +941,7 @@ jobs:
- name: Check local links and anchors
id: lychee
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/lychee-offline@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/lychee-offline@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
config: lychee.toml
exclude: >-
Expand All @@ -951,7 +951,7 @@ jobs:
- name: Check editorconfig conformance
id: editorconfig
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/editorconfig-checker@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/editorconfig-checker@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
config: .editorconfig-checker.json

Expand All @@ -965,21 +965,21 @@ jobs:
id: actionlint
if: needs.select-tests.outputs.run_workflows == 'true'
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/actionlint@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/actionlint@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15

- name: Validate dependabot.yml
id: dependabot_schema
if: needs.select-tests.outputs.run_workflows == 'true'
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
builtin-schema: vendor.dependabot
files: .github/dependabot.yml
- name: Validate workflows
id: workflow_schema
if: needs.select-tests.outputs.run_workflows == 'true'
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
builtin-schema: vendor.github-workflows
files: >-
Expand All @@ -991,12 +991,12 @@ jobs:
- name: Verify shebang files are executable
id: exec_bit
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-exec-bit@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-exec-bit@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15

- name: Check for machine-specific paths
id: machine_paths
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-machine-paths@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-machine-paths@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
# The guardrails plugin bundles a path-detection pattern lib whose
# regex bodies self-match this lane's own detector. The autonomy
Expand Down Expand Up @@ -1029,12 +1029,12 @@ jobs:
- name: Check index-level EOL drift
id: eol
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-line-endings@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-line-endings@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15

- name: Scan comment hygiene
id: comment_hygiene
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-comment-markers@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-comment-markers@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
# The audit-comment-residue skill IS a code-comment linter: its detector
# fixtures and shape library necessarily contain the markers this policy
Expand Down Expand Up @@ -1504,7 +1504,7 @@ jobs:
- name: Lint shell scripts
id: shellcheck
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/shellcheck@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/shellcheck@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
files: ${{ steps.changed_shell.outputs.files }}
rcfile: .shellcheckrc
Expand Down Expand Up @@ -1936,15 +1936,15 @@ jobs:
id: marketplace_schema
if: needs.select-tests.outputs.run_manifests == 'true'
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
schemafile: https://json.schemastore.org/claude-code-marketplace.json
files: .claude-plugin/marketplace.json
- name: Validate plugin manifests
id: plugin_schema
if: needs.select-tests.outputs.run_manifests == 'true'
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
schemafile: https://json.schemastore.org/claude-code-plugin-manifest.json
files: plugins/*/.claude-plugin/plugin.json
Expand Down Expand Up @@ -2344,7 +2344,7 @@ jobs:
- name: Validate every eval set against the bundled schema
id: evals_schema
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-jsonschema@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
schemafile: plugins/skill-quality/reference/evals.schema.json
files: plugins/*/skills/*/evals/evals.json
Expand Down Expand Up @@ -2587,7 +2587,7 @@ jobs:
# available to the bash-format contract suites in this same job. It
# verifies the install on one small file that sources nothing; the
# ShellCheck gate in `lint-shell` is what lints the repository.
uses: melodic-software/ci-workflows/.github/actions/shellcheck@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/shellcheck@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
files: scripts/aggregate-hygiene-results.sh
rcfile: .shellcheckrc
Expand Down Expand Up @@ -3058,7 +3058,7 @@ jobs:
# The guard diffs base...head; both commits must be present.
fetch-depth: 0
- name: Guard managed files
uses: melodic-software/ci-workflows/.github/actions/check-managed-files@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/check-managed-files@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15

# THE WHOLE-TREE CAN'T-FAIL SCAN, WHENEVER THERE IS NO DIFF BASE: the
# schedule, a dispatch, and a pull request or merge group that
Expand Down Expand Up @@ -3578,7 +3578,7 @@ jobs:
# the lane-scope step writes.
{ echo 'exec 9>&2'; declare -f gh_read; printf '%s\n' "${API_BUDGET_SH:-}" '! declare -F api_budget_wrap_gh >/dev/null || api_budget_wrap_gh github-token'; } >"$RUNNER_TEMP/gh-read.sh"
- name: Check the pull-request contract
uses: melodic-software/ci-workflows/.github/actions/pr-require-checks/check-contract@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/pr-require-checks/check-contract@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
token: ${{ github.token }}
# Carried over verbatim from `pr-issue-linkage.yml`, the caller this
Expand Down Expand Up @@ -4838,7 +4838,7 @@ jobs:
# aggregation: the job still fails on the contract step's exit code, and
# the `ci-lanes` status is on the SHA for the next contract-only run.
if: ${{ !cancelled() }}
uses: melodic-software/ci-workflows/.github/actions/pr-require-checks/aggregate-results@5e18f3d6cebd6fa5e66b0941ee0f7ed6ba288d6c # v0.58.0
uses: melodic-software/ci-workflows/.github/actions/pr-require-checks/aggregate-results@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
# Every lane of the needs graph above — the single source of truth
# for the lane list — through the ordered-skip check. Adding a lane
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-review-hosted.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ jobs:
contents: read
pull-requests: write # the review, its inline comments and the lane's
# reviewed-head marker comment
uses: melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@3180217076b19bbdfccc43026c7f91c604da673d # v0.65.14
uses: melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
lane: code
publish: comments
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-review-security-hosted.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ jobs:
contents: read
pull-requests: write # the review, its inline comments and the lane's
# reviewed-head marker comment
uses: melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@3180217076b19bbdfccc43026c7f91c604da673d # v0.65.14
uses: melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
lane: security
publish: comments
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/pr-run-activity-read.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1097,7 +1097,7 @@ jobs:
# need sudo, so they are written before the runner is isolated.
- name: Apply the Claude managed settings
if: steps.launch.outcome == 'success' && steps.go.outputs.run == 'true'
uses: melodic-software/ci-workflows/.github/actions/apply-claude-managed-settings@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/apply-claude-managed-settings@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15

# Nothing after this step needs sudo or docker.
- name: Isolate the runner
Expand Down Expand Up @@ -1400,7 +1400,7 @@ jobs:
if: steps.key-present.outputs.present == 'true'
continue-on-error: true
timeout-minutes: ${{ fromJSON(steps.launch.outputs.step-minutes || '50') }}
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
env:
# No work may outlive the result message the launcher reads.
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1"
Expand Down Expand Up @@ -1452,7 +1452,7 @@ jobs:
if: steps.token-present.outputs.present == 'true'
continue-on-error: true
timeout-minutes: ${{ fromJSON(steps.launch.outputs.step-minutes || '50') }}
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
env:
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1"
LD_LIBRARY_PATH: ""
Expand Down Expand Up @@ -1498,7 +1498,7 @@ jobs:
if: steps.fallback-present.outputs.present == 'true'
continue-on-error: true
timeout-minutes: ${{ fromJSON(steps.launch.outputs.step-minutes || '50') }}
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
env:
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1"
LD_LIBRARY_PATH: ""
Expand Down Expand Up @@ -1722,7 +1722,7 @@ jobs:
&& (steps.act-key.outcome == 'success' || steps.act-key.outcome == 'failure'
|| steps.act-token.outcome == 'success' || steps.act-token.outcome == 'failure'
|| steps.act-fallback.outcome == 'success' || steps.act-fallback.outcome == 'failure')
uses: melodic-software/ci-workflows/.github/actions/report-lane-outcome@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/report-lane-outcome@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
outcome: ${{ steps.act-key.outcome != 'skipped' && steps.act-key.outcome || steps.act-token.outcome != 'skipped' && steps.act-token.outcome || steps.act-fallback.outcome }}
execution-file: ${{ steps.act-key.outputs.execution-file || steps.act-token.outputs.execution-file || steps.act-fallback.outputs.execution-file }}
Expand Down Expand Up @@ -3078,7 +3078,7 @@ jobs:
id: summary-settings
if: steps.summary-prompt.outcome == 'success'
continue-on-error: true
uses: melodic-software/ci-workflows/.github/actions/apply-claude-managed-settings@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/apply-claude-managed-settings@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15

- name: Isolate the runner
id: isolate
Expand All @@ -3097,7 +3097,7 @@ jobs:
if: steps.isolate.outcome == 'success' && inputs.fallback == ''
continue-on-error: true
timeout-minutes: 15
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
env:
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1"
with:
Expand All @@ -3123,7 +3123,7 @@ jobs:
if: steps.isolate.outcome == 'success' && inputs.fallback != ''
continue-on-error: true
timeout-minutes: 15
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/run-claude-cli@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
env:
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1"
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-run-activity-write.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1644,7 +1644,7 @@ jobs:
- name: Record the lane outcome
id: lane-record
if: always() && (steps.act-skill.outcome == 'success' || steps.act-skill.outcome == 'failure')
uses: melodic-software/ci-workflows/.github/actions/report-lane-outcome@ba7af78d291f10bd75651857a0db2357c23df0fe # v0.65.13
uses: melodic-software/ci-workflows/.github/actions/report-lane-outcome@30b251532b2e9f7e0c4215e1dee5be0d3c688743 # v0.65.15
with:
outcome: ${{ steps.act-result.outputs.outcome || steps.act-skill.outcome }}
execution-file: >-
Expand Down
Loading
Loading