Lem/Docs

roadmap

Read the staged work plan between the current manuscript and a submitted paper.

Invocation#

Shell
lem-cli roadmap [<id-or-title>] [--push]

Inputs and options#

  • A bare invocation summarizes every registry paper in finish order: explicit finish_order first, then nearest deadline, then title.
  • id-or-title selects one paper and prints its full staged roadmap. Words are joined with spaces, so an unquoted multiword title is accepted.
  • --push mirrors each assessed roadmap onto the paper's matched Oko work item under metadata.lem_roadmap.

Output and state#

The six stages are evidence, citations, sections, figures, review, and submission. Every verdict is measured from the paper itself — PLACEHOLDER and XXX slots and \includegraphics in the TeX sources, .bib entries, plan-derived tasks, the review store, citation-harvest state, and PDF freshness — so a roadmap cannot drift from the manuscript. A stage reads done only when its prerequisites are effectively done, so declared venue metadata over an unreviewed draft never reads as submission-ready.

One paper prints every stage with its state, detail, metrics and open tasks, plus next_stage, next_action, complete, and the manuscript measurements. A bare invocation prints one row per paper with the stage states, open_tasks, next_stage and next_action.

Without --push the command writes no state. With --push it overwrites metadata.lem_roadmap on the matched work item whole and touches no task, checklist, or status field: pushed_to_oko reports whether the projection landed, oko_work_item names the work item it reached, and push_error names the reason when it reached none.

Refusals#

  • An unmatched selector refuses with “no paper matched '<selector>' in registry at <path>” and exits nonzero. --push is the only option, so any other flag is read as a title selector and refused the same way.
  • An empty or unreadable registry is not a refusal: the bare invocation prints an empty list and a note naming the registry path.
  • A push that reaches nothing is not a refusal either. pushed_to_oko stays false and push_error names the cause: Oko enrichment switched off by LEM_OKO_AGENDA_PATH, an agenda pointed at a local file instead of Oko's operating store, an unreadable operating store, no work item matching the paper by title, repository or URL, a matched work item Oko keeps out of the paper queue with include_in_paper_queue set to false, which Lem honours instead of overwriting, or a failed metadata write.