operationalize_design.py: minted tasks should include the doc's per-task section, not just the table row nf-lakr ← Beads

closed priority 2 task unassigned activesession:operationalize-task-body

Twinned from https://github.com/cfsh/ninefold/issues/1146 by tools/beads/import_github.py's reconcile pass.

What's wrong

operationalize_design.py --apply mints one bd task per work-breakdown table row, and its body is built entirely from that row's table cells (_issue_body(), design_docs/tools/operationalize_design.py:204, called at :320):

```python def _issue_body(doc_id: str, doc_filename: str, columns: dict[str, str]) -> str: lines = [f"From {doc_filename}'s task table (design {doc_id})."] for key, value in columns.items(): ... lines.append(f"- {key}: {value}") return "\n".join(lines) ```

columns is just the table row's cells — typically Task, `Real dependency, Issue`, maybe a one-line description. Design docs also carry a fuller per-task section elsewhere in the doc (Goal / Context / Files / Behavior / Test plan / Done-when / Refs — the shape /assign's own Step 0 already mirrors when it hand-files an issue) that the table row never contains. That prose is not pulled into the minted bd task at all.

Why this matters

A dev picking up a bd task today gets a table-row summary and has to open the design doc anyway to find the actual Goal/Files/Behavior/Test-plan/ Done-when detail — the exact thing operationalizing the doc was supposed to make unnecessary. This has been true since design 008 T3's original GitHub-issue version and carried forward unchanged into design 011 T3's bd-minting rewrite (#1037) — it isn't a regression from the bd migration, just never fixed.

Prescription

Extend _issue_body() (or its bd-side equivalent at :320) to also pull each task's per-task section from the doc — Goal/Context/Files/Behavior/ Test plan/Done-when/Refs, whichever of those the doc actually has for that task — and include it in the minted task's body alongside the table-row cells. If a doc has no such per-task section for a row (table-only docs exist), fall back to today's table-only body — don't fail the mint over it.

Non-goals

- Changing the table format itself, or requiring docs to add per-task sections they don't have. - The GitHub-issue path / github_live Projects — retired by #1037; only the bd path needs this.

Test plan

Golden before/after test (same style as #961) against a doc that has both a table and per-task sections: minted task body includes the per-task section's content, not just the table row. A table-only doc still mints successfully with today's shorter body.

Dependencies

None.

Comments

No comments.

Add a comment