v0.6.3 — --ignore-scripts on every install path; own every retired bin name
Security
-
--ignore-scriptson every documented install path,npm ciincluded.npm ciruns the full install lifecycle exactly asnpm installdoes — verified here with a sentinel dependency — so a lockfile-exact install is not by itself protection from a dependency that executes code at install time. In this tree that isprotobufjs, which runs before a single line of your own code is imported. README, AGENTS.md and the quick-start blocks now carry the flag throughout. Verified on the development tree as well as the consumer install: a cleannpm ci --ignore-scriptsclone runs the full 386-test suite green, so the flag costs nothing in either place. -
Every bin name this project has ever published is now project-owned on npm. Alongside
sparkbtcbot, the five names retired in 0.6.0 —sparkbtcbot-setup,sparkbtcbot-reveal-mnemonic,sparkbtcbot-leaf-vault,sparkbtcbot-set-policy,sparkbtcbot-reset-ledger— now resolve to reservation stubs that print thesparkbtcbot <subcommand>migration and exit 1.npxresolves whatever string you type as a package name, so folding a bin into a subcommand removes it from the package but not from the registry's namespace. That gap matters more here than in most projects: this skill's readers are LLM agents, the retired names were the documented form throughout 0.4.x–0.5.x and therefore sit in model weights and agent memory, and an agent working from recall never reads the SKILL.md rule that would stop it — whilenpxwith no TTY installs and executes silently, so there is no prompt to intervene either. Owning the name is the only control that acts at resolution time rather than upstream of a model's choice of what to type. Deliberately bounded to the names actually shipped and documented, not to arbitrary misspellings; a future release that retires a bin name should claim it the same way.
Changed
-
SKILL.md speaks one invocation form. Four
npx sparkbtcbot <cmd>instructions remained in user-facing lines and contradicted thenpm exec --no --forms beside them, so a reader copy-pasting from the nearest example got the weaker one. The description of--noalso picked up the precise wording README settled on in072f07e: it refuses to install, though a registry metadata request may still print a 404. -
SPARK_ACCOUNT_NUMBERis out of README's environment-variable table and out ofsetup's help text, which had advertised it without ever reading it. It is not a general setting:SparkAgentand every example script omitaccountNumberand take the SDK's network default, and theleaf-vaultCLI is its only reader — an escape hatch so a deliberately non-default wallet can still be backed up. Listed besideSPARK_PASSPHRASEit invited being set globally, which would point the recovery bundle at a different, empty wallet than the funded one..env.exampledocuments it correctly and is unchanged.