Give mutation-pass run a worker-count option for ruling 112 #1701

Closed
opened 2026-11-11 23:11:27 +00:00 by jared · 2 comments
Owner

Problem

Ruling 112 says to run the whole mutation pass with 8 workers on a 12-processor machine. os-sdlc-mutation-pass run has no option that sets the worker count, and .mutineer.yml has no jobs key. Thus the pass always runs with the Mutineer default, and the operator cannot follow ruling 112.

Observed

bundle exec bin/os-sdlc-mutation-pass help run
Options:
  [--tests=DIR]
  [--cache-dir=DIR]
  [--matrix], [--no-matrix], [--skip-matrix]

Pass 3 (2026-11-11) ran with the default worker count. The load average after the pass was 12.57.

Reproduce

n/a: feature ticket.

Approach

Required work: none beyond the acceptance criteria.

Acceptance criteria

  1. Given a worker count on os-sdlc-mutation-pass run, when the pass starts, then Mutineer runs with that worker count.
  2. Given no worker count, when the pass starts, then Mutineer runs with its default, as now.

Owner sketch

class OsSdlc::MutationTest::Pass::CLI
  method_option :jobs, type: :numeric, banner: "N", desc: "Mutineer worker count"
end

class OsSdlc::MutationTest::Pass::Command
  def initialize(root, tests, cache_dir: nil, matrix: false, jobs: nil)
  def to_s
end

class OsSdlc::MutationTest::Pass::Run
  def command
end

Pass::Command#to_s adds --jobs N to the Mutineer flags only when jobs is given (mutineer run --jobs N, default: processor count).

Origin

  • Trigger: whole mutation pass 3, 2026-11-11 (docs/research/mutation-testing/2026-11-11-third-pass/README.md, "Worker count gap")
  • Improvised this session: none
  • Chain: pass 3 ran with the default worker count ← run has no worker-count option ← ruling 112 was recorded in the runbook without a CLI change ← DESIGN (lib/os_sdlc/mutation_test/pass/cli.rb)
  • Root candidate: none found; searched jobs, workers, ruling 112, mutation-pass run, mutineer
  • Where: lib/os_sdlc/mutation_test/pass/cli.rb, lib/os_sdlc/mutation_test/pass/command.rb
  • Session: 2677aa00-1973-4df6-b9c5-e317088f3ea3
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os-plugins-os-sdlc/2677aa00-1973-4df6-b9c5-e317088f3ea3.jsonl

VERDICT: CREATE (ticket-skeptic, 2026-11-11): no open ticket has the same mechanism.

## Problem Ruling 112 says to run the whole mutation pass with 8 workers on a 12-processor machine. `os-sdlc-mutation-pass run` has no option that sets the worker count, and `.mutineer.yml` has no jobs key. Thus the pass always runs with the Mutineer default, and the operator cannot follow ruling 112. ## Observed ``` bundle exec bin/os-sdlc-mutation-pass help run ``` ``` Options: [--tests=DIR] [--cache-dir=DIR] [--matrix], [--no-matrix], [--skip-matrix] ``` Pass 3 (2026-11-11) ran with the default worker count. The load average after the pass was 12.57. ## Reproduce n/a: feature ticket. ## Approach Required work: none beyond the acceptance criteria. ## Acceptance criteria 1. Given a worker count on `os-sdlc-mutation-pass run`, when the pass starts, then Mutineer runs with that worker count. 2. Given no worker count, when the pass starts, then Mutineer runs with its default, as now. ## Owner sketch ```ruby class OsSdlc::MutationTest::Pass::CLI method_option :jobs, type: :numeric, banner: "N", desc: "Mutineer worker count" end class OsSdlc::MutationTest::Pass::Command def initialize(root, tests, cache_dir: nil, matrix: false, jobs: nil) def to_s end class OsSdlc::MutationTest::Pass::Run def command end ``` `Pass::Command#to_s` adds `--jobs N` to the Mutineer flags only when `jobs` is given (`mutineer run --jobs N`, default: processor count). ## Origin - Trigger: whole mutation pass 3, 2026-11-11 (`docs/research/mutation-testing/2026-11-11-third-pass/README.md`, "Worker count gap") - Improvised this session: none - Chain: pass 3 ran with the default worker count ← `run` has no worker-count option ← ruling 112 was recorded in the runbook without a CLI change ← DESIGN (`lib/os_sdlc/mutation_test/pass/cli.rb`) - Root candidate: none found; searched jobs, workers, ruling 112, mutation-pass run, mutineer - Where: lib/os_sdlc/mutation_test/pass/cli.rb, lib/os_sdlc/mutation_test/pass/command.rb - Session: 2677aa00-1973-4df6-b9c5-e317088f3ea3 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os-plugins-os-sdlc/2677aa00-1973-4df6-b9c5-e317088f3ea3.jsonl VERDICT: CREATE (ticket-skeptic, 2026-11-11): no open ticket has the same mechanism.
Author
Owner

Work started on branch ticket-1701 (/os-sdlc:implement).

Work started on branch ticket-1701 (/os-sdlc:implement).
Author
Owner

Resolution

Done: os-sdlc-mutation-pass run takes --jobs N and passes it to Mutineer; without it Mutineer uses its default worker count.

Evidence: Implementation 281 complete (14 dispatches, 16 min 23 s); Runner commit 3de686ea5, history row b7d791adb on ticket-1701. Suite gate green; survivor-check green after one survivor-tests round; contract-auditor pass.

Follow-ups: none

## Resolution **Done:** os-sdlc-mutation-pass run takes --jobs N and passes it to Mutineer; without it Mutineer uses its default worker count. **Evidence:** Implementation 281 complete (14 dispatches, 16 min 23 s); Runner commit 3de686ea5, history row b7d791adb on ticket-1701. Suite gate green; survivor-check green after one survivor-tests round; contract-auditor pass. **Follow-ups:** none <!-- os-backlog kind: resolution -->
jared closed this issue 2026-11-12 08:14: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#1701
No description provided.