Skip to main content

Module task_spec

Module task_spec 

Source
Expand description

Task-spec builder and TSV writer for the plan-issue runtime.

This module is intentionally not a Markdown emitter: the only string output below is render_tsv, which produces a tab-separated .tsv file consumed by downstream subagent lanes. The two nils_common::markdown::canonicalize_table_cell calls inside build_task_spec (notes joined for newly-built rows and notes copied from already-parsed TaskSpecRow values) keep TaskSpecRow.notes safe for a single-line TSV cell by collapsing embedded newlines and replacing | with /. They are kept here at struct-construction time, not at TSV emission time, so any consumer that reads TaskSpecRow.notes directly sees the same pre-canonicalized value.

The Markdown emitters live in crate::render and crate::issue_body::render_task_decomposition_block; both rely on the [nils_common::markdown v1 contract] idempotency of canonicalize_table_cell so a notes value that has already been canonicalized here can pass through the template-side | md_cell filter (registered by nils-markdown) without double-escaping. This is the Sprint 2 plan’s Task 2.2 audit deliverable: no Markdown migration is required for this file because no Markdown is rendered here.

Structs§

RuntimeLaneMetadata
TaskSpecBuild
TaskSpecBuildOptions
TaskSpecRow

Enums§

TaskSpecScope

Constants§

TASK_SPEC_HEADER

Functions§

build_task_spec
default_plan_task_spec_path
default_sprint_task_spec_path
execution_mode_by_task
render_tsv
resolve_plan_file
runtime_lane_metadata_by_task
state_dir
write_tsv