Skip to content

Conversation

@tarrencev
Copy link
Contributor

@tarrencev tarrencev commented Jan 1, 2026

Summary

Adds a new Claude skill (.claude/commands/release.md) that documents and automates the release workflow.

The skill allows triggering releases via /release minor, /release patch, /release major, or a specific version like /release 0.12.0. It guides through the GitHub Actions release-dispatch workflow process.


Note

Introduces a Claude release command and optimizes CI to skip unnecessary work on version-only changes.

  • Adds .claude/commands/release.md documenting the release process, semver calculation, and how to trigger release-dispatch via gh (including prerelease handling)
  • Updates quality.yml and test.yml to use dorny/paths-filter and gate Node/pnpm/lint/build/test/Codecov/Storybook steps behind code changes, with clear skip messages
  • Storybook workflow gains a code filter (includes *.css), conditional caching/execution, and a stricter final check conditioned on steps.changes.outputs.code == 'true'

Written by Cursor Bugbot for commit 0acad9c. This will update automatically on new commits. Configure here.

@vercel
Copy link

vercel bot commented Jan 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
controller-example-next Ready Ready Preview Jan 1, 2026 8:28pm
keychain Ready Ready Preview Jan 1, 2026 8:28pm
keychain-storybook Ready Ready Preview Jan 1, 2026 8:28pm

Use dorny/paths-filter to detect when only package.json version bumps
occur (prepare-release branch). Jobs still run and report success,
satisfying required checks without running unnecessary tests.
steps:
- uses: actions/checkout@v4

- uses: dorny/paths-filter@v3

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'quality' step
Uses Step: changes
uses 'dorny/paths-filter' with ref 'v3', not a pinned commit hash
steps:
- uses: actions/checkout@v4

- uses: dorny/paths-filter@v3

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium test

Unpinned 3rd party Action 'test' step
Uses Step: changes
uses 'dorny/paths-filter' with ref 'v3', not a pinned commit hash
if: steps.changes.outputs.code != 'true'
run: echo "Only version changes detected, skipping storybook tests"

- if: steps.changes.outputs.code == 'true' && steps.changes.outputs.ui == 'true'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cache step condition stricter than build steps

The cache step in the storybook job requires both code == 'true' && ui == 'true', but subsequent build and test steps (pnpm install, pnpm build, test:storybook:update) only require code == 'true'. When code changes occur outside the packages/keychain directory (code=true but ui=false), the storybook tests will run without the benefit of caching, resulting in slower CI runs. The cache condition likely needs to match the other steps by checking only code == 'true'.

Additional Locations (1)

Fix in Cursor Fix in Web

- '**/*.tsx'
- '**/*.js'
- '**/*.jsx'
- '!**/package.json'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent JSON path filter across workflow files

The code filter in quality.yml includes **/*.json (excluding package.json), but the code filter in test.yml omits JSON files entirely. This means changes to configuration files like tsconfig.json will trigger linting but skip tests. If a TypeScript config change breaks compilation, it won't be caught until a subsequent PR modifies TypeScript source files.

Additional Locations (1)

Fix in Cursor Fix in Web

- '**/*.tsx'
- '**/*.js'
- '**/*.jsx'
- '!**/package.json'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dependency-only updates skip all CI checks

The code path filters don't include pnpm-lock.yaml or other lock files. When a dependency update PR changes only package.json (excluded) and pnpm-lock.yaml (not in filter), code evaluates to false and all tests and linting are skipped. This means Renovate/Dependabot PRs with breaking dependency changes could merge without running any CI checks. Before this change, tests always ran regardless of which files changed.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants