roadmap
Read the staged work plan between the current manuscript and a submitted paper.
Invocation#
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 absent registry prints an empty list and “no registry at <path> yet”. An existing empty registry lists no papers with “registry at <path> contains no papers”. Any other registry read or decode failure refuses with “registry at <path> cannot be read: <cause>” and exits nonzero; damaged data is never treated as an empty registry.
- A paper directory, a .tex or .bib source, a directory entry or a modification date the manuscript scan cannot read refuses the roadmap with “manuscript file <path> cannot be read: <cause>”; skipped, it would undercount placeholders and citations, and a directory that cannot be examined would read as a paper with no checkout. A PDF that is not built is not current; one that is there but cannot be dated refuses the same way instead of being judged either way.
- 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.