BSD userland rejects or silently ignores several GNU spellings the repo used:
- `timeout` is not in a stock macOS at all (Homebrew installs it, and also as
`gtimeout`). Without it every gates.sh check exited 127 and was recorded
NOT-MET whatever the check actually did — a systematic false negative.
The binary is now resolved once, with a pure-bash deadline behind it so the
124 contract still holds where neither binary exists. GATES_TIMEOUT_BIN is
overridable with `-` not `:-`, so an empty value forces that fallback: the
suite passes 64/64 both ways, timeout cases included.
- `touch -d '10 days ago'` is GNU-only; perl's utime is the one spelling both
platforms ship.
- BSD `wc -l` pads its count with leading spaces, so string compares failed as
got[ 48] want[48].
- `sed -i` needs a suffix argument on BSD AND does not expand \n in the
replacement, so the release-candidate CHANGELOG edit silently did nothing
and the assertion failed for the wrong reason. Rewritten in awk; the RC_TAG=0
mode still REDs on the absent tag, so the test keeps its teeth.
- `/bin/grep` does not exist on macOS (grep lives in /usr/bin), and `stat -c`
is GNU-only.
fast-libs 11/11, seo-data 221/221, release-candidate 5 GREEN / 0 RED.
/release-candidate cuts a release by orchestrating the existing gitflow
release mechanic (start from develop; finish fan-out main+develop+delete)
and adding the one piece the lib lacks: the version tag.
- skills/release-candidate/SKILL.md: thin orchestrator — preconditions →
gitflow start release → prep (version.txt + CHANGELOG, breaking doc'd) →
run-tests gate → human WHEN-to-release gate → gitflow finish → git tag -a
vX.Y.Z (in the skill, lib untouched) → push (gated).
- lib/tests/run-release-candidate.sh: throwaway-repo flow replay. RC_TAG=0
reds the tag (gitflow fans out but never tags); RC_TAG=1 → 5/5.
- CLAUDE.md: Skill routing line. CHANGELOG [Unreleased]: /reconcile +
/release-candidate under Added (so the eventual v4.0.0 captures them).
Tag scheme vX.Y.Z continues the version.txt/CHANGELOG lineage. writing-skills TDD.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj