Repository navigation
Releases
Releases · nolte/pre-commit-hooks
v0.1.1
Changes
🧰 Maintenance
- chore(deps): update all dependencies (#5) @renovate[bot]
- chore: declare project_type override for release-skill-layer (#3) @nolte
- feat: add hook-authoring spec, skill, and translation-sync guard (#2) @nolte
- docs: add strict mkdocs gate, audiences, drop broken stale.yml (#1) @nolte
Project context
Audiences served
- hook-consumer-project (primary) → addressed by §Hooks changed, §Configurable args
- consumer-developer (primary) → addressed by §Configurable args, §Behaviour & fail-open semantics
- consumer-ci (secondary) → addressed by §Behaviour & fail-open semantics
Hooks changed
- Added
guard-primary-checkout— blocks commits made directly in the primary checkout while it sits on a feature branch; feature work belongs in a dedicated git worktree. (hooks/guard-primary-checkout.sh,c705195) - Added
guard-spec-translation-sync— blocks a commit that stages one language of a multilingual spec topic (spec/<topic>/<lang>.md) while leaving a tracked sibling translation unstaged. (hooks/guard-spec-translation-sync.sh, #2)
Configurable args
guard-primary-checkout:--branch <name>sets the integration branch (defaultdevelop).guard-spec-translation-sync: repeatable--lang <code>sets the tracked languages (defaulten de);--spec-dir <path>sets the spec root (defaultspec).
Behaviour & fail-open semantics
- Both hooks fail open under
CI: they short-circuit to exit 0 when theCIenvironment variable is set, so the same hook installed locally does not block CI lint jobs. (hooks/guard-primary-checkout.sh,hooks/guard-spec-translation-sync.sh) - Both run with
always_run: trueandpass_filenames: falseon thepre-commitstage; each derives its own staged set rather than relying on a staticfiles:filter.
Open questions
AUDIENCES.mdis the repository-wide audience artefact, not narrowed to the "release notes" bounded context perrelease-notes-audience-analysis. The primary contributor audience hook-maintainer (with the folded-inrelease-managerrole) has no release-notes-specific content dimension, so it is intentionally not mapped to a section above. Produce a release-notes-scoped audience artefact to close this gap.