capture body-style rules say checklists are - [ ] but the template and Required-work parsers require numbered lines #664

Closed
opened 2026-09-24 01:55:05 +00:00 by jared · 1 comment
Owner

body-style rules disagree with the Required work / Acceptance criteria parsers

Problem

The preloaded "Ticket body style" rules say checklists are - [ ] ... items. Both RequiredWork parsers (plugins/os-sdlc/lib/os_sdlc/pipeline/ticket_shape/required_work.rb and plugins/os-backlog/lib/backlog/required_work.rb) accept only lines matching /^\s*\d+\.\s+\S/. On 2026-09-23 tickets #659-#661 were captured with - [ ] items per the style rules and implementation-open rejected all three, costing a failed open and an extra bookkeeping dispatch.

Cases

  1. Given a ticket's Required work list is 1.-numbered, when either parser reads it, then it is counted as listed.
  2. Given a ticket's Required work list uses - [ ] items, when either parser reads it, then it is not counted as listed.
  3. Given body-style.md as written after this fix, when a ticket is captured following it verbatim, then implementation-open accepts the Required work section.

Approach

Fix the wording in plugins/os-backlog/references/body-style.md: Required work and Acceptance criteria lists must be numbered 1. lines, because both parsers accept only that shape.

Required work:

  1. Edit body-style.md to state Required work and Acceptance criteria are numbered 1. lists — check: grep -n "Required work" plugins/os-backlog/references/body-style.md
  2. Add one parser test in os-backlog showing - [ ] lines are not counted as Required work (documents the contract)

Acceptance criteria

  1. Given body-style.md and the capture template read side by side, when compared, then they agree Required work uses numbered lines.
  2. Given a Required work section with only - [ ] lines, when the os-backlog RequiredWork parser reads it, then listed? is false.

Non-goals

#699 owns parser consolidation between the os-sdlc and os-backlog RequiredWork classes; do not touch it here.

Origin

  • Trigger: #659-#661 captured 2026-09-23, rejected by implementation-open
  • Where: plugins/os-backlog/references/body-style.md, plugins/os-sdlc/lib/os_sdlc/pipeline/ticket_shape/required_work.rb, plugins/os-backlog/lib/backlog/required_work.rb
  • Session: 24f1de09-c081-4958-902b-0512a5d86e04
  • Parent: #659
# body-style rules disagree with the Required work / Acceptance criteria parsers ## Problem The preloaded "Ticket body style" rules say checklists are `- [ ] ...` items. Both RequiredWork parsers (plugins/os-sdlc/lib/os_sdlc/pipeline/ticket_shape/required_work.rb and plugins/os-backlog/lib/backlog/required_work.rb) accept only lines matching `/^\s*\d+\.\s+\S/`. On 2026-09-23 tickets #659-#661 were captured with `- [ ]` items per the style rules and `implementation-open` rejected all three, costing a failed open and an extra bookkeeping dispatch. ## Cases 1. Given a ticket's Required work list is `1.`-numbered, when either parser reads it, then it is counted as listed. 2. Given a ticket's Required work list uses `- [ ]` items, when either parser reads it, then it is not counted as listed. 3. Given body-style.md as written after this fix, when a ticket is captured following it verbatim, then `implementation-open` accepts the Required work section. ## Approach Fix the wording in plugins/os-backlog/references/body-style.md: Required work and Acceptance criteria lists must be numbered `1.` lines, because both parsers accept only that shape. Required work: 1. Edit body-style.md to state Required work and Acceptance criteria are numbered `1.` lists — check: `grep -n "Required work" plugins/os-backlog/references/body-style.md` 2. Add one parser test in os-backlog showing `- [ ]` lines are not counted as Required work (documents the contract) ## Acceptance criteria 1. Given body-style.md and the capture template read side by side, when compared, then they agree Required work uses numbered lines. 2. Given a Required work section with only `- [ ]` lines, when the os-backlog RequiredWork parser reads it, then `listed?` is false. ## Non-goals #699 owns parser consolidation between the os-sdlc and os-backlog RequiredWork classes; do not touch it here. ## Origin - Trigger: #659-#661 captured 2026-09-23, rejected by implementation-open - Where: plugins/os-backlog/references/body-style.md, plugins/os-sdlc/lib/os_sdlc/pipeline/ticket_shape/required_work.rb, plugins/os-backlog/lib/backlog/required_work.rb - Session: 24f1de09-c081-4958-902b-0512a5d86e04 - Parent: #659
Author
Owner

Resolution

Done: body-style.md now requires numbered lines for Required work and Acceptance criteria, with the parser reason stated; new required_work_test documents that dash checklists are not counted

Evidence: commit 3b68709c; os-backlog suite 246 runs 0 failures

Follow-ups: #699 still owns consolidating the two RequiredWork parsers (open, filed-by/agent, ready-for-human)

## Resolution **Done:** body-style.md now requires numbered lines for Required work and Acceptance criteria, with the parser reason stated; new required_work_test documents that dash checklists are not counted **Evidence:** commit 3b68709c; os-backlog suite 246 runs 0 failures **Follow-ups:** #699 still owns consolidating the two RequiredWork parsers (open, filed-by/agent, ready-for-human)
jared closed this issue 2026-09-24 20:34:25 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#664
No description provided.