knack 0.3.1

CLI for packaging, discovering, and installing Agent Skills
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.3.1]https://github.com/ajac-zero/knack/compare/knack-v0.3.0...knack-v0.3.1 - 2026-07-10

### Added

- *(core)* discount common query terms via IDF weighting in search ranking

## [0.3.0]https://github.com/ajac-zero/knack/compare/knack-v0.2.2...knack-v0.3.0 - 2026-07-10

### Added

- *(cli)* show descriptions, cap and rank find output, tolerate registry failures
- *(cli)* default_registry — bare install commands (knack add ns/name) resolve without alias prefix
- *(cli)* surface namespace in 'knack find' output; install command uses qualified name
- *(cli)* namespaced install commands (alias:namespace/name) with legacy fallback
- *(core)* [**breaking**] add namespace field across IndexedSkill + LockedSkill, lockfile v2

## [0.2.2]https://github.com/ajac-zero/knack/compare/knack-v0.2.1...knack-v0.2.2 - 2026-06-29

### Added

- *(cli)* bootstrap public registry on knack init
- *(registry)* build-static subcommand for offline-baked deployments
- *(cli)* sync falls back to manifest source when pinned SHA is gone
- *(cli)* knack update [<skill>...] for targeted updates

### Other

- daily workflow to publish the public knack registry to R2
- *(registry)* persistent source cache with incremental refresh
- curated source list for the public knack registry

## [0.2.1]https://github.com/ajac-zero/knack/compare/knack-v0.2.0...knack-v0.2.1 - 2026-06-27

### Fixed

- *(cli)* consult project manifest for alias resolution under -g

### Other

- colourize --help output in both binaries
- *(cli)* align unknown-registry hints with new `<url> [<name>]` order

## [0.2.0]https://github.com/ajac-zero/knack/compare/knack-v0.1.0...knack-v0.2.0 - 2026-06-27

### Added

- *(core)* add schema version field to lockfile
- *(cli)* knack sync --check verifies lockfile + install integrity
- *(cli)* knack update --dry-run reports what would change
- *(cli)* record HTTP registry SHA in lockfile via X-Knack-Resolved-Sha
- *(cli)* pin lockfile resolved field to commit SHA when available
- *(cli)* knack sync --update honors pinned refs, --force overrides
- *(cli)* [**breaking**] knack registry add resolves name from /info on HTTP registries
- *(cli)* knack sync --update re-resolves and reinstalls
- *(cli)* suggest concrete fixes on gh: source 404
- *(cli)* suggest knack find on 404 from HTTP registry add
- *(cli)* suggest known registries when alias is unknown
- *(cli)* surface registry-add overwrites with a per-field diff
- *(cli)* [**breaking**] infer registry kind from URL scheme
- *(cli)* [**breaking**] knack list shows project and global skills by default
- *(cli)* auto-init manifest on knack registry add
- *(cli)* [**breaking**] move global manifest from ~/.config/knack/ to ~/.agents/
- *(cli)* [**breaking**] knack find and registry list merge all scopes by default
- *(cli)* [**breaking**] replace --scope flag with -g/--global short form
- *(cli)* auto-init manifest on knack add
- *(cli)* style output with anstream

### Fixed

- *(cli)* clone SHA refs via full clone + checkout in fetch_git_skill
- *(cli)* silence git clone in fetch_git_skill via run_git
- *(cli)* silence git output on success, surface stderr on failure
- *(cli)* preserve publish --no-push working tree for inspection
- resolve preexisting clippy lints

### Other

- document --check, --dry-run, content-addressed lockfile, --name
- *(cli)* [**breaking**] split sync --update into knack sync and knack update
- *(cli)* move 'generated index' status to the index command
- *(cli)* use kebab-case kind labels in registry list
- rewrite README around installed binaries