     check-scaffold [ vocab>scaffold-path ] keep ;
 
 : scaffold-help ( vocab-root str -- )
-    prepare-scaffold
-    [ "-docs.factor" scaffold-path ] dip
-    swap [ set-scaffold-help-file ] [ 2drop ] if ;
+    H{ } clone using [
+        prepare-scaffold
+        [ "-docs.factor" scaffold-path ] dip
+        swap [ set-scaffold-help-file ] [ 2drop ] if
+    ] with-variable ;
 
 : scaffold-vocab ( vocab-root str -- )
     prepare-scaffold

: check-vocab-name ( str -- str )
    dup dup [ CHAR: . = ] trim [ length ] bi@ =
    [ vocab-name-contains-dot ] unless

    ".." over subseq? [ vocab-name-contains-dot ] when

    dup [ path-separator? ] contains?
    [ vocab-name-contains-separator ] when ;


USING: assocs io.files hashtables kernel namespaces sequences
vocabs.loader io combinators io.encodings.utf8 calendar accessors
math.parser io.streams.string ui.tools.operations quotations
strings arrays prettyprint words vocabs sorting combinators.lib
sets cords ;
IN: tools.scaffold

SYMBOL: developer-name
SYMBOL: using

ERROR: not-a-vocab-root string ;

