Skip to content

v0.11.0: hook hardening, commit guard, consistency guards, comment lens, routing eval #15

v0.11.0: hook hardening, commit guard, consistency guards, comment lens, routing eval

v0.11.0: hook hardening, commit guard, consistency guards, comment lens, routing eval #15

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
permissions:
contents: read
jobs:
validate:
name: Validate manifests
runs-on: ubuntu-latest
env:
# Keep the CLI offline-friendly in CI: no autoupdate / telemetry / error reporting.
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
# Manifest validation is OS-independent, so it runs once here rather than
# paying a global CLI install on every runner in the matrix below.
- name: Validate marketplace and plugin manifests
run: claude plugin validate --strict .
quality:
name: Lint, format, typecheck
runs-on: ubuntu-latest
# JS quality gates are OS-independent — the cross-OS guard is test-hooks below.
# These deps are dev-only tooling; the plugin itself ships no JS dependencies.
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- name: Install dev tooling
run: pnpm install --frozen-lockfile
- name: Format check
run: pnpm run format:check
- name: Lint
run: pnpm run lint
- name: Typecheck
run: pnpm run typecheck
test-hooks:
name: Test hooks (${{ matrix.os }})
runs-on: ${{ matrix.os }}
# The OS matrix is the regression guard: the original crash was macOS-only
# (system bash 3.2). The hooks run on Node alone, so no CLI install is needed.
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Test hooks
run: node --test "test/*.test.mjs"