This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

rm-rf-root-or-home reads a default expansion by its variable only: rm -rf ${DIR:-$HOME} and rm -rf ${DIR:-/} delete the home or the root when DIR is unset and allow, because a word's written spelling holds one text and the default's own word is the other value it can print. An alternative nested more than three deep (${X:+${X:+${X:+${X:+$HOME}}}}) and ${PWD:0:1}, which prints the root and warns as $PWD, are the same class. Named in 17-guard.md's residuals.

issueresolvedmajoriss-2609290426544292

rm-rf-root-or-home reads a default expansion by its variable only: rm -rf ${DIR:-$HOME} and rm -rf ${DIR:-/} delete the home or the root when DIR is unset and allow, because a word's written spelling holds one text and the default's own word is the other value it can print. An alternative nested more than three deep (${X:+${X:+${X:+${X:+$HOME}}}}) and ${PWD:0:1}, which prints the root and warns as $PWD, are the same class. Named in 17-guard.md's residuals.

Deferral 2026-09-29

Deferred past v0.11.1: Reading a default's word needs a written spelling that holds more than one text (the variable's value or the default's word), which changes segment.spelled from one string per word to a set and the payload pairing that copies it (spellPayload); owed: that representation, then the default word, deep alternatives and a substring's root read through it, test first.

Evidence 2026-09-29: a default after a subscript

The class includes a default the bash 3.2 of macOS reads at the first operator after a subscript's ]. With X unset, bash 3.2 and /bin/sh print the word for ${X[0]]-$HOME}, ${X[0]]:-$HOME}, ${X[0]]=$HOME}, ${X[0]]:=$HOME} and ${X[0]]x-$HOME} (the home), and for ${X[0]]-/} (the root); bash 5 refuses each as a bad substitution. With X set each prints X's value. The guard reads the subscript's operator (unknown.go subscriptOperators) and spells a - or = there as the variable, as it spells ${X:-$HOME}, so each allows. The pin ${X[0]]-$HOME} in homeresiduals_test.go is this residual, not a claim that the form stays off the home. The same owed representation, a spelling that holds both texts, reads them.

Grounds

  • pursued: rm -rf ${DIR:-$HOME}, ${DIR:-/}, ${X[0]]-$HOME}, a four-deep alternative and ${PWD:0:1} block bare and in sh -c and bash -c while ${DIR:-./build} allows; a default, alternative or substring form that prints the root or home and still allows would show it wrong.

Frontmatter

idiss-2609290426544292
typeissue
lifecycleresolved
severitymajor

mentions3