Observable behavior
The vendored pipeline .github/capsule-pipeline/task-runner.dot does not lint clean: the repo's own linter reports a CMD-001 finding on the ship_check gate, and --strict mode exits non-zero. The two sibling pipelines in the same directory lint clean.
Reproduction
$ uv run --project modules/pipeline-runner dot-runner lint .github/capsule-pipeline/task-runner.dot
WARNING: [CMD-001] [ship_check] Tool node 'ship_check' tool_command ends in a pipe to
'grep' without pipefail: the gate's exit code is 'grep's (always 0 on success)...
dot-runner lint: .github/capsule-pipeline/task-runner.dot: 1 warning(s)
$ echo $?
0
$ uv run --project modules/pipeline-runner dot-runner lint --strict .github/capsule-pipeline/task-runner.dot; echo $?
1
$ uv run --project modules/pipeline-runner dot-runner lint --strict .github/capsule-pipeline/capsule.dot; echo $?
0
$ uv run --project modules/pipeline-runner dot-runner lint --strict .github/capsule-pipeline/feature-capsule.dot; echo $?
0
Verified at c86c196; the file is unchanged at current main.
Expected vs actual
- Expected: every vendored pipeline in
.github/capsule-pipeline/ lints clean under --strict (exit 0), so the repo's own lanes hold the standard the linter teaches.
- Actual:
task-runner.dot exits 1 under --strict with the CMD-001 finding above.
Notes for scoping
- Honest caveat: the flagged command's pipe is mid-chain and the final
grep -q . is a real predicate — a live false-SUCCESS has not been demonstrated. The crisp, machine-checkable defect is the --strict exit 1.
- This file is vendored from its source repo, where the same finding exists; fixing it here is fine, and a port-back to the source copy is a reasonable follow-up outside this issue's scope.
- Deliberately not prescribing which end to fix (the graph's command vs the lint rule's judgment): the acceptance is behavior-bound —
dot-runner lint --strict .github/capsule-pipeline/task-runner.dot exits 0, without weakening the evidence the ship_check gate actually checks.
Observable behavior
The vendored pipeline
.github/capsule-pipeline/task-runner.dotdoes not lint clean: the repo's own linter reports a CMD-001 finding on theship_checkgate, and--strictmode exits non-zero. The two sibling pipelines in the same directory lint clean.Reproduction
Verified at
c86c196; the file is unchanged at current main.Expected vs actual
.github/capsule-pipeline/lints clean under--strict(exit 0), so the repo's own lanes hold the standard the linter teaches.task-runner.dotexits 1 under--strictwith the CMD-001 finding above.Notes for scoping
grep -q .is a real predicate — a live false-SUCCESS has not been demonstrated. The crisp, machine-checkable defect is the--strictexit 1.dot-runner lint --strict .github/capsule-pipeline/task-runner.dotexits 0, without weakening the evidence theship_checkgate actually checks.