2 A practical workflow
When designing a new program, the following order works well.
Choose the state you need.
Decide which variables are long-lived and which are scratch registers. In practice, many programs use .1, .2, and .3 as call convention registers for syslib routines, and keep persistent state in higher-numbered variables such as .9, .10, and .11.
Choose the loop shape.
Most non-trivial programs are arranged around a small label skeleton: a body label, a branch to a helper label, and a final RESUME that decides whether to continue or exit. Existing working programs in "pit/" are useful templates for this.
Use syslib for arithmetic.
The implementation automatically loads "syslib.i", so you do not need to inline arithmetic yourself. For example, many programs use label 1009 as addition and 1010 as subtraction with the convention that inputs are placed in .1 and .2, and the result is returned in .3.
Add I/O last.
Once the state transitions are correct, add READ OUT or WRITE IN. This keeps debugging focused on semantics instead of mixing in parsing and tape-format issues too early.