Seed os-backlog journeys from a ticket fixture so test setup leaves the map #1579

Closed
opened 2026-11-06 13:09:56 +00:00 by jared · 1 comment
Owner

Problem

The os-backlog journeys show test setup as if it were the command. In issue-edit, steps 1-60 of 98 are the issue-create command. Seven other journeys start with an 11-step create_issue call, and projects runs config-write as setup. Setup is 165 of 1,447 steps. The issue-edit test also fails when issue-create fails, so one defect breaks two tests.

Nine journeys run on the repo: tracker, but the project configs under ~/dev use Forgejo or GitHub. os-backlog has no ticket record fixture. os-sdlc has the convention in plugins/os-sdlc/skills/lens-testing/references/record-fixtures.md.

The os-backlog session start wrapper journey has 0 steps, because its test runs hooks/session_start.rb in a separate process and the tracer records only in-process calls. The hook is live. Keep the hook and the test.

Reproduce

n/a: test structure change, measured from plugins/os-backlog/design/generated/journeys/*.c4.

Approach

Behavior does not change. The tests change, and the journeys regenerate.

  1. Add TicketFixture to plugins/os-backlog/tests/support/. It follows the record-fixture rules: it returns a value and does no I/O.
  2. Give the journeys a Forgejo-tracker ticket through FakeForgejoClient where the existing fake can carry the test. Keep a repo: journey only where the repo: behavior is the subject.
  3. In tests/issue_edit_cli_test.rb, move the use_case tag to a Forgejo test that does not run issue-create.
  4. Replace the create_issue setup in tagged journeys with the fixture.
  5. In tests/close_retry_cli_test.rb, check the closed state without a second issues command inside the use_case block.
  6. Remove the use_case tag from test_wrapper_emits_context_in_a_git_project. The session-start tag still satisfies use_case_tag_coverage_test.rb.
  7. Regenerate design/generated and record the new setup count per journey.

Required work:

  1. Add the ticket record fixture — check: present TicketFixture in plugins/os-backlog/tests/support/*.rb
  2. Remove the empty wrapper tag — check: absent os-backlog session start wrapper in plugins/os-backlog/tests/session_start_test.rb

Rejected: Copy TicketScenario from os-sdlc into os-backlog — it writes a repo: file, so the journeys stay on a tracker that no project uses.

Acceptance criteria

  1. Given the regenerated journeys, when a reader opens issue-edit, then step 1 belongs to the issue-edit command.
  2. Given issue-create raises an error, when the issue-edit tagged test runs, then that test still passes.
  3. Given the regenerated journeys, when a reader opens any journey with a create_issue setup today, then the setup steps no longer appear.
  4. Given the regenerated journeys, then no journey view has 0 steps.

Non-goals

Adding a Ticket domain object. Renaming commands. #1484 stays open: it refuses an empty view in the generator.

Origin

  • Trigger: journey measurement on 2026-11-06, shown to Jared.
  • Improvised this session: none
  • Chain: journeys show setup ← tests build tickets through production commands ← os-backlog has no ticket record fixture. Ends at DESIGN: plugins/os-sdlc/skills/lens-testing/references/record-fixtures.md applied to os-sdlc only (memory, #1019).
  • Root candidate: none found; searched fixture, journey, use_case, create_issue, ticket record, test setup
  • Where: plugins/os-backlog/tests/issue_edit_cli_test.rb, plugins/os-backlog/tests/support/file_tracker_sandbox.rb
  • Session: 8720f6ad-c6db-428e-977f-7511559fbfbb
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/8720f6ad-c6db-428e-977f-7511559fbfbb.jsonl

VERDICT: CREATE

## Problem The os-backlog journeys show test setup as if it were the command. In `issue-edit`, steps 1-60 of 98 are the `issue-create` command. Seven other journeys start with an 11-step `create_issue` call, and `projects` runs `config-write` as setup. Setup is 165 of 1,447 steps. The `issue-edit` test also fails when `issue-create` fails, so one defect breaks two tests. Nine journeys run on the `repo:` tracker, but the project configs under `~/dev` use Forgejo or GitHub. os-backlog has no ticket record fixture. os-sdlc has the convention in `plugins/os-sdlc/skills/lens-testing/references/record-fixtures.md`. The `os-backlog session start wrapper` journey has 0 steps, because its test runs `hooks/session_start.rb` in a separate process and the tracer records only in-process calls. The hook is live. Keep the hook and the test. ## Reproduce n/a: test structure change, measured from `plugins/os-backlog/design/generated/journeys/*.c4`. ## Approach Behavior does not change. The tests change, and the journeys regenerate. 1. Add `TicketFixture` to `plugins/os-backlog/tests/support/`. It follows the record-fixture rules: it returns a value and does no I/O. 2. Give the journeys a Forgejo-tracker ticket through `FakeForgejoClient` where the existing fake can carry the test. Keep a `repo:` journey only where the `repo:` behavior is the subject. 3. In `tests/issue_edit_cli_test.rb`, move the `use_case` tag to a Forgejo test that does not run `issue-create`. 4. Replace the `create_issue` setup in tagged journeys with the fixture. 5. In `tests/close_retry_cli_test.rb`, check the closed state without a second `issues` command inside the `use_case` block. 6. Remove the `use_case` tag from `test_wrapper_emits_context_in_a_git_project`. The `session-start` tag still satisfies `use_case_tag_coverage_test.rb`. 7. Regenerate `design/generated` and record the new setup count per journey. Required work: 1. Add the ticket record fixture — check: present `TicketFixture` in `plugins/os-backlog/tests/support/*.rb` 2. Remove the empty wrapper tag — check: absent `os-backlog session start wrapper` in `plugins/os-backlog/tests/session_start_test.rb` Rejected: Copy `TicketScenario` from os-sdlc into os-backlog — it writes a `repo:` file, so the journeys stay on a tracker that no project uses. ## Acceptance criteria 1. Given the regenerated journeys, when a reader opens `issue-edit`, then step 1 belongs to the `issue-edit` command. 2. Given `issue-create` raises an error, when the `issue-edit` tagged test runs, then that test still passes. 3. Given the regenerated journeys, when a reader opens any journey with a `create_issue` setup today, then the setup steps no longer appear. 4. Given the regenerated journeys, then no journey view has 0 steps. ## Non-goals Adding a `Ticket` domain object. Renaming commands. #1484 stays open: it refuses an empty view in the generator. ## Origin - Trigger: journey measurement on 2026-11-06, shown to Jared. - Improvised this session: none - Chain: journeys show setup ← tests build tickets through production commands ← os-backlog has no ticket record fixture. Ends at `DESIGN`: `plugins/os-sdlc/skills/lens-testing/references/record-fixtures.md` applied to os-sdlc only (memory, #1019). - Root candidate: none found; searched fixture, journey, use_case, create_issue, ticket record, test setup - Where: plugins/os-backlog/tests/issue_edit_cli_test.rb, plugins/os-backlog/tests/support/file_tracker_sandbox.rb - Session: 8720f6ad-c6db-428e-977f-7511559fbfbb - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/8720f6ad-c6db-428e-977f-7511559fbfbb.jsonl VERDICT: CREATE
Author
Owner

Resolution

Done: Tagged journeys start from TicketFixture on the Forgejo fake with no setup steps; repo: tests stay untagged; empty wrapper journey removed; total steps 1447 to 1106

Evidence: main 59187efa; fast-gate PASS 364 runs 0 failures; docs/crc/os-backlog/fast-batch-1579/

Follow-ups: #1582 stops load-time calls from appearing in journeys (ticket-skeptic VERDICT: CREATE)

## Resolution **Done:** Tagged journeys start from TicketFixture on the Forgejo fake with no setup steps; repo: tests stay untagged; empty wrapper journey removed; total steps 1447 to 1106 **Evidence:** main 59187efa; fast-gate PASS 364 runs 0 failures; docs/crc/os-backlog/fast-batch-1579/ **Follow-ups:** #1582 stops load-time calls from appearing in journeys (ticket-skeptic VERDICT: CREATE)
jared closed this issue 2026-11-06 13:23:06 +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#1579
No description provided.