fix(lint-bash-traps): self-allow convention + externalize fixture #3

Merged
fqqdk merged 1 commit from calliope/lint-bash-traps-allow into focus 2026-06-22 17:04:28 +00:00
Owner

Adds a self-allow convention to lib/lint-bash-traps mirroring lint-languages # bash-traps: allow — <reason>. Externalises the captured-conditional fixture to tests/fixtures/lint-bash-traps/marked-and-unmarked.sh so the test file itself stays lint-clean.

Fixes the issue surfaced on PR #1 and PR #2 where the daktyl review gate caught the lints own teaching example.

Tests: 4/4 (existing 3 + new test_allow_marker_suppresses_finding).

Adds a self-allow convention to lib/lint-bash-traps mirroring lint-languages `# bash-traps: allow — <reason>`. Externalises the captured-conditional fixture to `tests/fixtures/lint-bash-traps/marked-and-unmarked.sh` so the test file itself stays lint-clean. Fixes the issue surfaced on PR #1 and PR #2 where the daktyl review gate caught the lints own teaching example. Tests: 4/4 (existing 3 + new test_allow_marker_suppresses_finding).
lib/lint-bash-traps gains the same line-suffix allow convention
lint-language already uses: any line carrying 'bash-traps: allow' is
skipped — intended for fixtures that *demonstrate* the pattern or for
legacy-boundary lines where the upstream shape is the actual interface.

The fixture demonstrating both marked and unmarked patterns lives at
tests/fixtures/lint-bash-traps/marked-and-unmarked.sh — externalised so
the test file itself stays lint-clean.

Tests: 4/4 (existing 3 still pass; new test_allow_marker_suppresses_finding
asserts marker silences line 2, no marker on line 3 still flags).

Why now: the daktyl review-gate stack uses lint-bash-traps; without the
allow convention every PR that touches the lint's own test fixture
red-gates on the lint catching its own teaching example.
Author
Owner

daktyl review (head 1d3af61)

gate status duration note
bash-parse PASS 4ms (no changed .sh failed parse)
lint-bash-traps PASS 5ms (no bash traps in the diff)
shellcheck PASS 24ms (no findings at -S warning)
lint-language PASS 18ms (no vocabulary violations in diff)
daisy-validate PASS 38324ms (full suite green)

Verdict: 5/5 gates green. Awaiting judgment.

## daktyl review (head `1d3af61`) | gate | status | duration | note | |---|---|---|---| | bash-parse | ✅ PASS | 4ms | (no changed .sh failed parse) | | lint-bash-traps | ✅ PASS | 5ms | (no bash traps in the diff) | | shellcheck | ✅ PASS | 24ms | (no findings at -S warning) | | lint-language | ✅ PASS | 18ms | (no vocabulary violations in diff) | | daisy-validate | ✅ PASS | 38324ms | (full suite green) | **Verdict:** 5/5 gates green. ✅ Awaiting judgment.
fqqdk merged commit 1ceca901d7 into focus 2026-06-22 17:04:28 +00:00
Collaborator

attribution note

The earlier daktyl-review comment + the merge on this PR were posted via fqqdks token (logged-in-as-fqqdk session). They were daktyl actions, not human-fqqdk actions. The token has since been reminted as calliope (the daktyls Forgejo identity); future daktyl posts/labels/merges will show calliope as the actor — matching the git commit signer.

### attribution note The earlier daktyl-review comment + the merge on this PR were posted via fqqdks token (logged-in-as-fqqdk session). They were daktyl actions, not human-fqqdk actions. The token has since been reminted as `calliope` (the daktyls Forgejo identity); future daktyl posts/labels/merges will show `calliope` as the actor — matching the git commit signer.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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
fqqdk/daisy!3
No description provided.