Crypt-Age
view release on metacpan or search on metacpan
.claude/agents/crypt-age-release-checker.md view on Meta::CPAN
to the unreleased `$VERSION` sitting in that distribution's local repo.
3. **`Changes`** â a `{{$NEXT}}` section exists and covers the user-visible changes
since the last release (`git log --oneline v<last>..`). Entries name the effect on a
caller or on the file format, not the internal refactor.
4. **`dzil build`** â runs clean: no missing files, no warnings. Note that `.claude/`
and `CLAUDE.md` **are** shipped in the tarball, deliberately: this distribution
discloses how it was built, so there is no `gather_exclude_match` in `dist.ini` and
their presence is not a finding. What *is* a finding: anything under `.claude/` that
should never be published â a stray `settings.local.json`, credentials, session
state. `.gitignore` keeps those untracked and `Git::GatherDir` ships tracked files
only, so check that the untracked set is still what it should be.
5. **Interop proof â the one specific to this distribution.** A release claims byte
compatibility with `age`. Check whether `t/04-interop.t` actually *ran*: it
`plan skip_all`s when neither `age` nor `rage` is on PATH, and the suite then reports
`All tests successful` having asserted nothing about compatibility. Report the state
plainly â "interop verified against age <version>" or "interop NOT verified, no
binary" â and treat the latter as a release blocker, not a note.
# Claude Code â commit: skills/, agents/, rules/, hooks/, settings.json
# Ignore: local overrides, credentials, session data
# Tracked: shared config & extensibility
!/.claude/
.claude/*
!.claude/settings.json
!.claude/agents/
!.claude/agents/**
!.claude/skills/
!.claude/skills/**
!.claude/rules/
!.claude/rules/**
!.claude/hooks/
!.claude/hooks/**
# Local overrides (machine-specific)
.claude/*.local.*
.claude/local/
# Credentials & session state (never track)
.claude/.credentials.json
.claude/statsig/
.claude/todos/
.claude/projects/
# Build artifacts (Dist::Zilla)
Crypt-Age-*/
Crypt-Age-*.tar.gz
.build/
blib/
MANIFEST
The agents carry their skills via `briefing.skills` (see `.claude/agents/`); the main
agent delegates rather than loading them. Skill sources live under `.claude/skills/` â
`getty-perl-core`, `getty-perl-moo` and `getty-perl-release-author-getty` are hardlinked
from `~/dev/skills/perl/`, `kanban-issues-karr-cli` from `~/dev/karr/`; `crypt-age-core`
is owned by this repo.
Work is coordinated on the repo's `karr` board (`karr board`).
`.claude/` and this file ship inside the CPAN tarball on purpose â the distribution
discloses how it was built. There is deliberately no `gather_exclude_match` in
`dist.ini`; `.gitignore` is what keeps credentials, session state and machine-local
overrides out, since `Git::GatherDir` ships tracked files only.
## Downstream
`File::SOPS` and `kubernetes-ocp` pin `Crypt::Age` in their `cpanfile`s. A release here
leaves those pins stale â file that as a ticket on the other repo's board, never as an
edit from here.
( run in 1.357 second using v1.01-cache-2.11-cpan-007c89162af )