# Deferred Work Format Canonical entry format for `{implementation_artifacts}/deferred-work.md`. On the inner dev path the bmad-dev-auto session appends its own flat entries (review defers, multi-goal splits, token splits); the orchestrator owns the ledger and normalizes those flat entries into this canonical form on sweep, and a `bmad-loop sweep` migration rewrites freeform pre-DW-format content from older projects into it wholesale (see `./migration-mode.md`; the TUI displays such legacy items read-only until that happens). The file is append-only — never rewrite or delete existing entries. ## Before appending: dedupe check Scan the existing file for an entry describing the same issue or goal (same location and same substance, even if worded differently). If one exists, do NOT append a duplicate — add a `seen-again:` line to the existing entry instead: ```markdown seen-again: 2026-06-12 (code review of spec-3-3-export.md) ``` ## Entry format Number entries sequentially (`DW-1`, `DW-2`, …) by scanning the file for the highest existing number. One entry per deferred item: ```markdown ### DW-: origin: location: severity: reason: status: open ``` `severity:` is optional — entries written before this field existed have none and that is fine; readers must treat a missing or unrecognized value as "unspecified". Use `critical` for correctness/security issues, `high` for likely user-visible problems, `medium` for quality and robustness gaps, `low` for polish and nice-to-haves. When a deferred item is later completed, set its `status:` to `done` with the date (e.g. `status: done 2026-06-20`) — do not delete the entry. ## Sweep annotations `bmad-loop sweep` runs (the orchestrator and its bundle dev sessions) add two optional field lines to existing entries — both directly after `status:`: ```markdown resolution: decision: ``` - `resolution:` accompanies every sweep close (`status: done `). Bundle dev sessions write it when finishing a bundle's entries; the orchestrator writes it when closing entries triage proved already resolved. - `decision:` records a human's sweep-time choice on an entry. It does not by itself change `status:` — a `keep-open` decision leaves the entry open.