mirror of
https://github.com/ivuorinen/actions.git
synced 2026-03-14 13:58:54 +00:00
chore(claude): add hooks, skills, and agents for Claude Code (#496)
* chore(claude): add hooks, skills, and agents for Claude Code Add auto-formatting hooks (ruff, shfmt, prettier, actionlint), rules.yml edit blocker, 5 skills (/release, /test-action, /new-action, /validate, /check-pins), and 2 subagents (action-validator, test-coverage-reviewer). Update CLAUDE.md with hook documentation. * fix(claude): add tool availability guards and fix skill docs Add jq availability checks to hook scripts (block-rules-yml.sh, post-edit-write.sh) and wrap actionlint call in command -v guard, consistent with project rules #2 and #10. Fix validate skill to reflect actual make all pipeline order and note that make test runs separately. * fix(claude): correct skill docs per PR review feedback Fix validate skill description to say "precommit" instead of "test", and fix check-pins SHA guidance to use origin/main instead of HEAD. * feat(tools): add SHA-pinning enforcement to check-version-refs The check-version-refs script previously only displayed existing SHA-pinned refs but silently skipped non-SHA references. Add a validation pass that detects and reports any ivuorinen/actions/* references not using a 40-char hex SHA, exiting 1 on violations. * fix(tools): fix temp file leak in check-version-refs.sh Write find output directly to $violations_file instead of $violations_file.all so the EXIT trap covers cleanup on all exit paths, not just the happy path.
This commit is contained in:
57
.claude/skills/release/SKILL.md
Normal file
57
.claude/skills/release/SKILL.md
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
name: release
|
||||
description: Create a new CalVer release with validation checks
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# Release Workflow
|
||||
|
||||
Follow these steps to create a new CalVer release:
|
||||
|
||||
## 1. Pre-flight checks
|
||||
|
||||
Run the full validation pipeline:
|
||||
|
||||
```bash
|
||||
make all
|
||||
```
|
||||
|
||||
If any step fails, fix the issues before proceeding.
|
||||
|
||||
## 2. Check version references
|
||||
|
||||
Verify all action references are properly pinned:
|
||||
|
||||
```bash
|
||||
make check-version-refs
|
||||
make check-local-refs
|
||||
```
|
||||
|
||||
## 3. Prepare the release
|
||||
|
||||
Run release preparation (updates version references):
|
||||
|
||||
```bash
|
||||
make release-prep
|
||||
```
|
||||
|
||||
Review the changes with `git diff`.
|
||||
|
||||
## 4. Confirm with user
|
||||
|
||||
Ask the user to confirm:
|
||||
|
||||
- The version number (defaults to `vYYYY.MM.DD` based on today's date)
|
||||
- That all changes look correct
|
||||
|
||||
## 5. Create the release
|
||||
|
||||
```bash
|
||||
make release VERSION=vYYYY.MM.DD
|
||||
```
|
||||
|
||||
Replace `vYYYY.MM.DD` with the confirmed version.
|
||||
|
||||
## 6. Verify
|
||||
|
||||
Show the user the created tag and any output from the release process.
|
||||
Reference in New Issue
Block a user