Skip to content

lint: vendored task-runner.dot ship_check exit code is pipe-masked (CMD-001, --strict red) #28

Description

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    defect-reportPipeline-ready defect report (filed via the defect-report issue form)ready:specHuman gate: run the expensive capsule.dot specify-stage pipeline on this issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions