Quote the template description so the raw scaffold is valid YAML, reject newline-containing names in new-instructions.sh, correct the empty-compile facts (exit 1, --clean exits 0), and finish removing commit steps from the skill-author, agent-author and forge references. Adds regression tests. Refs #148 Co-Authored-By: Claude Code <[email protected]> Claude-Session: https://claude.ai/code/session_01KkT7RSDwDbmrM9T34b6sTi
tests/
new-instructions.bats— coversscripts/new-instructions.sh(name validation, package walk-up, no-package refusal, no-op on an existing file, template placeholders) and the apm behaviour the skill's gotchas rest on, run against throwaway packages: a filled scaffold compiles intoCLAUDE.mdand installs into.claude/rules/withdescriptiondropped, compile writes nothing once rules are installed, an unquotedapplyToinstalls unscoped, and--validatehides the warnings a real compile prints.
Dependencies
The test file loads bats-support and bats-assert from the repo root's tests/test_helper/, and runs on the repo's bats submodule at tests/bats/. The first bash tests/run-bats.sh initialises the submodules.
The apm tests need the apm CLI on PATH and skip when it is absent. They assert apm 0.28.0 behaviour, so a failure after an apm upgrade is a finding about the skill's gotchas, not a flaky test.
From the repo root:
tests/bats/bin/bats plugins/kyberforge/.apm/skills/instructions-author/tests/new-instructions.bats