9.1. Added step
- [ ] 9.1.1. Added task. Requires 9.1.1.
Insert the fragment before phase 2:
```bash
mapsplice insert target.md 2 fragment.md
The result will:
- insert the new phase before the original phase 2
- renumber the inserted phase to
2 - renumber the original phase 2 to
3 - rewrite dependency prose such as
Requires 2.1.1.toRequires 3.1.1.
Only Requires dependency references are rewritten. A Requires clause is
recognized in three positions: on the task or sub-task title line, beginning a
plain indented continuation line, and beginning a nested task or sub-task body
bullet item.
A numeric range such as Requires 1.1.1-1.1.3. is not a supported clause form,
but it is not ignored either. A hyphen is not an anchor character, so the
scanner reads the two endpoints as two separate anchors and rewrites each one
on its own item's behalf. The range is never expanded: a clause naming two
anchors keeps exactly two anchors, however many items the range spanned.
Deleting 1.1.2 from a roadmap requiring 1.1.1-1.1.3 therefore yields
Requires 1.1.1-1.1.2., while deleting an endpoint fails the edit as a
dangling dependency.
Dependency references follow the item, not the number. Inserting items shifts
the anchors of everything after the insertion point while leaving every
existing item's identity intact, so a clause that required 1.1.1 before the
insert still names whichever item that was, now carrying its new anchor.
Replacing an item retires it instead: the addressed item's identity ends with
the edit, and any surviving clause that still required it makes the operation
fail with a dangling-dependency error rather than silently re-pointing the
consumer at a replacement item that inherited the old number. Delete behaves
the same way. Nothing is written in any failing case, including in place, so
the target is left byte-identical.
Incidental numeric text is preserved: section references (§2.1), semantic
versions (1.4.0), ordered-list numbering, and numbers inside code examples
are all left exactly as written.