Fix 3 ParameterListSignalsMissingObject hits in os-context scripts #1455

Closed
opened 2026-10-28 06:39:08 +00:00 by jared · 1 comment
Owner

Problem

The gate cop Sdlc/Structural/ParameterListSignalsMissingObject reports 3 offenses in plugins/os-context scripts on main. These offenses existed before the #1448 widening. The #1363 note said the baseline was 0 hits, so the earlier sweep did not inspect these extensionless scripts. Jared's rule for this cop is zero hits with no Exclude list.

Observed

cd plugins/os-sdlc && bundle exec rubocop --cache false -c .rubocop.yml --only Sdlc/Structural/ParameterListSignalsMissingObject ../
plugins/os-context/audit/bin/audit-stats:93:19: C: ... This method takes 5 parameters (max 4).
plugins/os-context/eval/bin/self-test:100:12: C: ... This method takes 9 parameters (max 4).
plugins/os-context/eval/fixture/project/bin/gen-logs:37:13: C: ... This method takes 5 parameters (max 4).

Main 5b80a126, 2026-10-28. The same command from a linked worktree reported only the first two.

Reproduce

cd plugins/os-sdlc && bundle exec rubocop --cache false -c .rubocop.yml --only Sdlc/Structural/ParameterListSignalsMissingObject ../

Approach

For each hit, find the values that travel together, and pass a built value object (Data.define) instead of its parts. No Exclude list and no rubocop:disable.

Required work: none beyond the acceptance criteria.

Acceptance criteria

  1. Given main, when the command in Reproduce runs, then it reports no offenses in plugins/os-context.
  2. Given the change, when the os-context tests run, then they pass.

Origin

  • Trigger: probe of the widened cop over plugins/ while working #1448
  • Improvised this session: none
  • Chain: 3 hits on main ← earlier baseline sweep skipped extensionless scripts ← IMPROVISATION (the #1363 baseline note)
  • Root candidate: none found; searched ParameterListSignalsMissingObject, os-context, audit-stats, self-test, gen-logs
  • Where: plugins/os-context/audit/bin/audit-stats, plugins/os-context/eval/bin/self-test, plugins/os-context/eval/fixture/project/bin/gen-logs
  • Session: 9f415790-a6bd-4850-8d70-3dd45004ce2b
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/9f415790-a6bd-4850-8d70-3dd45004ce2b.jsonl

VERDICT: CREATE

## Problem The gate cop `Sdlc/Structural/ParameterListSignalsMissingObject` reports 3 offenses in `plugins/os-context` scripts on main. These offenses existed before the #1448 widening. The #1363 note said the baseline was 0 hits, so the earlier sweep did not inspect these extensionless scripts. Jared's rule for this cop is zero hits with no Exclude list. ## Observed ``` cd plugins/os-sdlc && bundle exec rubocop --cache false -c .rubocop.yml --only Sdlc/Structural/ParameterListSignalsMissingObject ../ ``` ``` plugins/os-context/audit/bin/audit-stats:93:19: C: ... This method takes 5 parameters (max 4). plugins/os-context/eval/bin/self-test:100:12: C: ... This method takes 9 parameters (max 4). plugins/os-context/eval/fixture/project/bin/gen-logs:37:13: C: ... This method takes 5 parameters (max 4). ``` Main 5b80a126, 2026-10-28. The same command from a linked worktree reported only the first two. ## Reproduce ``` cd plugins/os-sdlc && bundle exec rubocop --cache false -c .rubocop.yml --only Sdlc/Structural/ParameterListSignalsMissingObject ../ ``` ## Approach For each hit, find the values that travel together, and pass a built value object (`Data.define`) instead of its parts. No Exclude list and no `rubocop:disable`. Required work: none beyond the acceptance criteria. ## Acceptance criteria 1. Given main, when the command in Reproduce runs, then it reports no offenses in `plugins/os-context`. 2. Given the change, when the os-context tests run, then they pass. ## Origin - Trigger: probe of the widened cop over `plugins/` while working #1448 - Improvised this session: none - Chain: 3 hits on main ← earlier baseline sweep skipped extensionless scripts ← IMPROVISATION (the #1363 baseline note) - Root candidate: none found; searched ParameterListSignalsMissingObject, os-context, audit-stats, self-test, gen-logs - Where: plugins/os-context/audit/bin/audit-stats, plugins/os-context/eval/bin/self-test, plugins/os-context/eval/fixture/project/bin/gen-logs - Session: 9f415790-a6bd-4850-8d70-3dd45004ce2b - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/9f415790-a6bd-4850-8d70-3dd45004ce2b.jsonl VERDICT: CREATE
Author
Owner

Resolution

Done: Fixed the 3 ParameterListSignalsMissingObject hits with built collaborators, output byte-identical: audit-stats AuditRun(state_dir:, transcripts:, today:) takes a TranscriptSet the CLI builds, ledger reads TranscriptSet#since (a851506a); self-test case! takes a file-local SelfTestCase Data.define that owns the pass rule and expectation label, 34 call sites (e8761266); gen-logs fmt_line/routine lines/incident lambdas take a LogTick Data.define(:date, :index) that owns timestamp (8c43517e). Merged 67762412.

Evidence: Main 9a03c5a4 pushed. Ticket Reproduce command: 2755 files inspected, no offenses detected. os-context tests: hook_test OK; self-test 34/34 exit 0. Byte-diff against pre-edit baselines identical for gen-logs (8 logs + stdout), self-test stdout, audit-stats --dry-run, full run (stdout + state dir), no-since exit 1. Per-cop rubocop counts on the 3 files did not rise vs 5b80a126. Worktree gen-logs gap: the #1448 probe piped output through cut -c1-110 | grep ': C:'; the worktree path makes the gen-logs prefix 114 chars, so the line was dropped. Not a runner defect.

Follow-ups: fast-gate rubocop step reports 0 changed files for extensionless Ruby scripts (seen on all 3 findings); fast-gate sweep count still 2 for this cop outside os-context

## Resolution **Done:** Fixed the 3 ParameterListSignalsMissingObject hits with built collaborators, output byte-identical: audit-stats AuditRun(state_dir:, transcripts:, today:) takes a TranscriptSet the CLI builds, ledger reads TranscriptSet#since (a851506a); self-test case! takes a file-local SelfTestCase Data.define that owns the pass rule and expectation label, 34 call sites (e8761266); gen-logs fmt_line/routine lines/incident lambdas take a LogTick Data.define(:date, :index) that owns timestamp (8c43517e). Merged 67762412. **Evidence:** Main 9a03c5a4 pushed. Ticket Reproduce command: 2755 files inspected, no offenses detected. os-context tests: hook_test OK; self-test 34/34 exit 0. Byte-diff against pre-edit baselines identical for gen-logs (8 logs + stdout), self-test stdout, audit-stats --dry-run, full run (stdout + state dir), no-since exit 1. Per-cop rubocop counts on the 3 files did not rise vs 5b80a126. Worktree gen-logs gap: the #1448 probe piped output through cut -c1-110 | grep ': C:'; the worktree path makes the gen-logs prefix 114 chars, so the line was dropped. Not a runner defect. **Follow-ups:** fast-gate rubocop step reports 0 changed files for extensionless Ruby scripts (seen on all 3 findings); fast-gate sweep count still 2 for this cop outside os-context
jared closed this issue 2026-10-28 06:53:17 +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#1455
No description provided.