Extract ticket and backlog behavior into an os-backlog gem #969

Open
opened 2026-10-07 21:20:14 +00:00 by jared · 0 comments
Owner

Extract ticket and backlog behavior into an os-backlog gem [capture]

Problem

os-sdlc and os-backlog each implement ticket-body parsing and validation: Required work items, the check: rule, and section names. The two copies drift. This drift caused #820, #821, and #847. ADR-0279 allows a shared gem once pain points show, and these three tickets are the pain points.

Reproduce

n/a: design ticket, nothing to reproduce.

Approach

An os-backlog gem owns all ticket and backlog interaction behavior that more than one codebase uses. This includes:

  1. The ticket template and section names.
  2. Section parsing.
  3. Required-work items and checks.
  4. Validators.
  5. Issue fetch through forgejo-api.

os-backlog and os-sdlc both depend on the gem. The first step is an inventory of what moves.

Rejected: one plugin owns the rule for both — this crosses the codebase boundary (ADR-0279).

  • Absorbs #960 (one TicketTemplate owner) and the #847 duplication.
  • Depends on #965 (markdown-outline parser).
  • Pain points: #820, #821, #847.
  • Decision: ADR-0279.

Origin

  • Trigger: owner ruling in session 87a712ed while confirming held-out eval cases #820 and #821.
  • Improvised this session: none
  • Chain: drifting validators ← two copies of the ticket rules ← no shared home for ticket behavior across codebases. End: DESIGN (ADR-0279).
  • Where: plugins/os-sdlc RequiredWork and plugins/os-backlog Backlog::RequiredWork
  • Session: 87a712ed-cbfb-44d0-a970-d1bbff2fd148
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-prism-architect/87a712ed-cbfb-44d0-a970-d1bbff2fd148.jsonl
# Extract ticket and backlog behavior into an os-backlog gem [capture] ## Problem os-sdlc and os-backlog each implement ticket-body parsing and validation: Required work items, the `check:` rule, and section names. The two copies drift. This drift caused #820, #821, and #847. ADR-0279 allows a shared gem once pain points show, and these three tickets are the pain points. ## Reproduce n/a: design ticket, nothing to reproduce. ## Approach An os-backlog gem owns all ticket and backlog interaction behavior that more than one codebase uses. This includes: 1. The ticket template and section names. 2. Section parsing. 3. Required-work items and checks. 4. Validators. 5. Issue fetch through forgejo-api. os-backlog and os-sdlc both depend on the gem. The first step is an inventory of what moves. Rejected: one plugin owns the rule for both — this crosses the codebase boundary (ADR-0279). ## Links - Absorbs #960 (one TicketTemplate owner) and the #847 duplication. - Depends on #965 (markdown-outline parser). - Pain points: #820, #821, #847. - Decision: ADR-0279. ## Origin - Trigger: owner ruling in session 87a712ed while confirming held-out eval cases #820 and #821. - Improvised this session: none - Chain: drifting validators ← two copies of the ticket rules ← no shared home for ticket behavior across codebases. End: `DESIGN` (ADR-0279). - Where: plugins/os-sdlc RequiredWork and plugins/os-backlog Backlog::RequiredWork - Session: 87a712ed-cbfb-44d0-a970-d1bbff2fd148 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-prism-architect/87a712ed-cbfb-44d0-a970-d1bbff2fd148.jsonl
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#969
No description provided.