Skip to content

fix(skills): /merge — prefer fixture logs in candidate signal intake (line 63) #37

@OriginalGary

Description

@OriginalGary

Problem

claude-code/.claude/skills/merge/SKILL.md line 63 selects the latest orchestrator log via:

LATEST=$(ls -t ~/.claude/orchestrator-log/run-*.md 2>/dev/null | head -1)

This bypasses fixture-log precedence: when a fixture log exists for deterministic test verification, a newer non-fixture log can shadow it and skew confidence calibration. Breaks the campaign contract for /merge testing.

Evidence

CodeRabbit has flagged this on every push to PR #33 since 5a906790 (4 reviews running):

Spec

Update the LATEST selection to prefer fixture logs first, fall back to general:

-LATEST=$(ls -t ~/.claude/orchestrator-log/run-*.md 2>/dev/null | head -1)
+LATEST=$(ls -t ~/.claude/orchestrator-log/run-*-fixture.md 2>/dev/null | head -1)
+if [ -z "$LATEST" ]; then
+  LATEST=$(ls -t ~/.claude/orchestrator-log/run-*.md 2>/dev/null | head -1)
+fi

Why this is a separate issue from #36

#36 is scoped to adding the BLOCKED MED-cap bullet only. The line-63 fixture-log concern pre-dates that work — folding it into PR #33 violates the no-scope-creep rule per ~/.claude/rules/pipeline-nevers.md. Filed separately so the line-63 fix can land in its own commit on its own branch.

Sensitivity

sensitivity:staff-ok — pure technical fix, no PII, no funder dynamics, no campaign intel.

Filed by

OpenGaryBot from /run orchestrator at operator request after the 03:35Z fire surfaced the recurring CodeRabbit finding.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions