Move comment, issue-comments, categorize, and issues onto Ticket #1617

Closed
opened 2026-11-06 20:06:22 +00:00 by jared · 3 comments
Owner

Problem

These four commands read and write through the old backends. They are the simple writes, so they prove pending comments and label changes before the close and claim families move.

Approach

Follow the step walks in section 3 of the design record. Owned rules: inventory 1.7 (category swap) and the list group order next, waiting, review, other.

Required work:

  1. Add ticket.comment, ticket.comments, ticket.category=, and Ticket.list — check: present def comment in plugins/os-backlog/lib/backlog/**/*.rb
  2. Route the four commands through Ticket.
  3. Fix inventory defect 18: a failed --body-file read on issue-edit and comment keeps the command prefix.

Acceptance criteria

  1. Given a ticket, when comment runs, then one comment appears.
  2. Given a ticket with a category, when categorize runs, then the new category is added first and the old one is removed second.
  3. Given open tickets, when issues runs, then the groups print in the order next, waiting, review, other.
  4. Given a missing body file, when comment or issue-edit runs, then the error starts with the command prefix and the exit status is 1.
  5. Given issue-comments, when it runs, then the output is the same JSON array as before the port.

Owner sketch

class Backlog::Ticket
  def self.list(tracker:)
  def comment(text)
  def comments
  def category=(name)
class Backlog::Tracker
  def list
class Backlog::Host::Forgejo
  def list
  def comment(number, text)
  def comments(number)

Non-goals

Do not rename a command before slice 9. Do not change ## Resolution, **Follow-ups:**, the body headings, the check form, the label names, or the issue-show JSON keys. Do not make a behavior change that this ticket does not name.

Blocking edges

Blocked by #1616

Origin

  • Trigger: port plan, section 5 of docs/system-design-format/proof/2026-11-06-os-backlog-domain-objects.md, slice 4
  • Improvised this session: none
  • Chain: os-backlog code has no domain objects ← commands own their own reads and writes ← DESIGN (ADR-0307, plugins/os-backlog/CONTEXT.md)
  • Root candidate: none found; searched comment, categorize, issue-comments, issues
  • Where: plugins/os-backlog/lib/backlog/cli/issue_commands.rb, plugins/os-backlog/lib/backlog/categorize.rb
  • Session: 9d8c2e15-00c1-4dec-b177-e749fa05ec67
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/9d8c2e15-00c1-4dec-b177-e749fa05ec67.jsonl

VERDICT: CREATE

## Problem These four commands read and write through the old backends. They are the simple writes, so they prove pending comments and label changes before the close and claim families move. ## Approach Follow the step walks in section 3 of the design record. Owned rules: inventory 1.7 (category swap) and the list group order next, waiting, review, other. Required work: 1. Add `ticket.comment`, `ticket.comments`, `ticket.category=`, and `Ticket.list` — check: present `def comment` in `plugins/os-backlog/lib/backlog/**/*.rb` 2. Route the four commands through `Ticket`. 3. Fix inventory defect 18: a failed `--body-file` read on `issue-edit` and `comment` keeps the command prefix. ## Acceptance criteria 1. Given a ticket, when `comment` runs, then one comment appears. 2. Given a ticket with a category, when `categorize` runs, then the new category is added first and the old one is removed second. 3. Given open tickets, when `issues` runs, then the groups print in the order next, waiting, review, other. 4. Given a missing body file, when `comment` or `issue-edit` runs, then the error starts with the command prefix and the exit status is 1. 5. Given `issue-comments`, when it runs, then the output is the same JSON array as before the port. ## Owner sketch ```ruby class Backlog::Ticket def self.list(tracker:) def comment(text) def comments def category=(name) class Backlog::Tracker def list class Backlog::Host::Forgejo def list def comment(number, text) def comments(number) ``` ## Non-goals Do not rename a command before slice 9. Do not change `## Resolution`, `**Follow-ups:**`, the body headings, the check form, the label names, or the `issue-show` JSON keys. Do not make a behavior change that this ticket does not name. ## Blocking edges Blocked by #1616 ## Origin - Trigger: port plan, section 5 of `docs/system-design-format/proof/2026-11-06-os-backlog-domain-objects.md`, slice 4 - Improvised this session: none - Chain: os-backlog code has no domain objects ← commands own their own reads and writes ← DESIGN (ADR-0307, `plugins/os-backlog/CONTEXT.md`) - Root candidate: none found; searched comment, categorize, issue-comments, issues - Where: plugins/os-backlog/lib/backlog/cli/issue_commands.rb, plugins/os-backlog/lib/backlog/categorize.rb - Session: 9d8c2e15-00c1-4dec-b177-e749fa05ec67 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/9d8c2e15-00c1-4dec-b177-e749fa05ec67.jsonl VERDICT: CREATE
Author
Owner

From #1615: Tracker#save holds four of the six write steps. Add the comments step here, first in the order.

From #1615: Tracker#save holds four of the six write steps. Add the comments step here, first in the order.
Author
Owner

Work started on branch ticket-1617.

Work started on branch ticket-1617.
Author
Owner

Resolution

Done: comment, issue-comments, categorize, and issues run through Ticket on every host. Tracker#save writes pending comments first. list, comment, and comments are on the Host role. Categorize is deleted. Defect 18 is fixed. The run failed at contract-auditor with verdict error after a green suite; the three production corrections and the role-test gap were finished by hand.

Evidence: Branch: os-backlog 489 runs on seed 19992 plus three random seeds, os-sdlc 3508 runs, ticket-takedown 623 runs, all 0 failures. Implementation 253. Merged by worktree finish.

Follow-ups: none. The auditor error is an occurrence on #1298.

## Resolution **Done:** comment, issue-comments, categorize, and issues run through Ticket on every host. Tracker#save writes pending comments first. list, comment, and comments are on the Host role. Categorize is deleted. Defect 18 is fixed. The run failed at contract-auditor with verdict error after a green suite; the three production corrections and the role-test gap were finished by hand. **Evidence:** Branch: os-backlog 489 runs on seed 19992 plus three random seeds, os-sdlc 3508 runs, ticket-takedown 623 runs, all 0 failures. Implementation 253. Merged by worktree finish. **Follow-ups:** none. The auditor error is an occurrence on #1298.
jared closed this issue 2026-11-06 22:45:40 +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#1617
No description provided.