home / skills / pplmx / husky-rs / husky-maintainer

husky-maintainer skill

/.agent/skills/husky-maintainer

This skill helps you maintain the husky-rs project by enforcing msrv, build, and release standards across code, tests, and docs.

npx playbooks add skill pplmx/husky-rs --skill husky-maintainer

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
1.8 KB
---
name: Husky Maintainer
description: Specific workflows and standards for maintaining the husky-rs project.
---

# Husky Maintainer Checklist

This skill encapsulates the specific workflows for the `husky-rs` project.

## Development Environment

- **Rust Version**: The MSRV (Minimum Supported Rust Version) is **1.78**. All changes must be compatible with this version.
    - Use `make msrv-check` to verify compatibility.
- **Build System**: This project uses a `Makefile` to simplify common tasks.
    - **Run CI locally**: `make ci` (runs fmt, clippy, doc-check, msrv-check, and test).
    - **Fix Style**: `make fix` (auto-fixes clippy issues and formatting).
    - **Coverage**: `make coverage` (generates tarpaulin report).

## Project Structure

- **Binaries**: The main CLI is in `src/bin/husky.rs`.
- **Library**: Core logic is in `src/lib.rs`.
- **Tests**: Integration tests are in `tests/`.

## Workflow Guidelines

1. **Before Committing**:
    - Run `make fix` to ensure code is formatted and clippy-clean.
    - Run `make test` (or `make nextest` if you have it installed) to verify correctness.
2. **Making Changes**:
    - If modifying the CLI, check `tests/test_cli.rs` for regression tests.
    - If adding a feature, update `CHANGELOG.md` under the `[Unreleased]` section.
    - Ensure `Cargo.toml` metadata remains accurate.
3. **Documentation**:
    - `docs/` contains detailed usage guides. Update them if CLI flags change.
    - Run `make doc-check` to ensure no broken links or invalid code blocks in docs.

## Release Process

- Update version in `Cargo.toml`.
- Update `CHANGELOG.md`:
    - Rename `[Unreleased]` to the new version `[0.x.y] - YYYY-MM-DD`.
    - Create a new empty `[Unreleased]` section at the top.
    - Update comparison links at the bottom of the file.
- Tag the commit with `v0.x.y`.

Overview

This skill documents specific workflows and standards for maintaining the husky-rs project, a husky-like Git hook tool written in Rust. It captures the required development environment, project layout, pre-commit and change procedures, and the release checklist to keep releases predictable and CI green. Follow these rules to ensure compatibility with the project's MSRV and to streamline contributions and releases.

How this skill works

The guide enforces use of Rust MSRV 1.78 and provides Makefile targets to run checks, fixes, tests, and documentation validation locally. It maps where source files and tests live (CLI binary, library, integration tests) and prescribes steps to run before committing, how to update docs and changelogs, and the exact release steps including tagging. Use the provided make targets to automate style, lint, test, coverage, and doc validation tasks.

When to use it

  • Before committing any change to ensure formatting, lints, and tests pass.
  • When adding or modifying CLI behavior to update tests and documentation.
  • Before publishing a release to update version, changelog, and create the tag.
  • When validating compatibility with the project MSRV (1.78).
  • When running CI-like checks locally to reproduce pipeline failures.

Best practices

  • Run make fix, make test (or make nextest), and make msrv-check before pushing.
  • Keep Cargo.toml metadata accurate and bump only the library/CLI version during releases.
  • Update docs/ whenever CLI flags or usage change; run make doc-check to verify.
  • Add or adjust integration tests in tests/ for CLI regressions and features.
  • Maintain CHANGELOG.md by moving Unreleased to the new version and adding a fresh Unreleased section.

Example use cases

  • A contributor implements a new flag in src/bin/husky.rs and updates tests/test_cli.rs and docs/ accordingly.
  • A maintainer prepares a release: bump Cargo.toml, rename Unreleased to v0.x.y with date, update links, and tag v0.x.y.
  • A developer verifies MSRV compliance with make msrv-check after adopting new Rust code patterns.
  • A CI failure is reproduced locally with make ci to iterate quickly on fixes.
  • Generating coverage reports with make coverage to evaluate test completeness.

FAQ

What is the MSRV and how do I check it?

The MSRV is Rust 1.78. Run make msrv-check to validate compatibility.

Which make target runs all local CI checks?

Use make ci to run fmt, clippy, doc-check, msrv-check, and tests in one step.