docs/archive/2026-07-ai-artifacts/claude-skills/feature-pipeline-preview/15-final-verify/03-hlint/SKILL.md
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: 03-hlint description: Runs hlint as a final pass that captures warnings for the PR body without gating the pipeline. kind: leaf executor: script model: claude-haiku-4-5-20251001 --- # Final Hlint Runs `hlint` against the changed Haskell files one last time and wri
npx skillsauth add neohaskell/neohaskell docs/archive/2026-07-ai-artifacts/claude-skills/feature-pipeline-preview/15-final-verify/03-hlintInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE. Superseded by
codemap/+ rootAGENTS.md. Scheduled for deletion once the pipeline is verified (Phase 6). Manifest:docs/archive/2026-07-ai-artifacts/MANIFEST.md
Runs hlint against the changed Haskell files one last time and writes the output to .pipeline/hlint.log. Hlint warnings are collected, not gated — this leaf does not fail the final-verify phase on warnings. The PR-body step in phase 16 surfaces the log contents to the PR reviewer.
BASE=$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main) && git diff --name-only "$BASE"...HEAD -- '*.hs' '*.lhs'. Three-dot range so committed branch deltas show up in CI; pathspec so an empty match stays exit-0.hlint on the list, redirecting stdout+stderr to .pipeline/hlint.log (overwriting any earlier build-loop log so the final state is canonical) → verify: log written.hlint: missing) to .pipeline/hlint.log and still exit 0 so the phase-complete check (.pipeline/hlint.log refreshed) has a single canonical signal → verify: caller sees exit 0, .pipeline/hlint.log always exists.Assumptions:
01-build, 02-test) are the strict gates here; hlint is informational for the PR reviewer..pipeline/hlint.log is canonical at PR-body time — it reflects the final state after fix-findings (phase 14).If any assumption fails, refuse — do not guess.
BASE=$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main); git diff --name-only "$BASE"...HEAD -- '*.hs' '*.lhs'..pipeline/hlint.log and exit 0.nix develop --command hlint <files...> > .pipeline/hlint.log 2>&1 || true — the trailing || true keeps the leaf at exit 0 regardless of warning count.hlint produced N warning(s); see .pipeline/hlint.log and the PR body). Do not surface as failure..pipeline/hlint.log written (possibly empty), reflecting the final-verify pass. Exit code is always 0 unless a hard environmental failure occurred.
Note: nix or hlint missing is not a refusal here. Write hlint: missing to .pipeline/hlint.log and exit 0 — phase-complete only cares that the log was refreshed.
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-style-guide description: NeoHaskell coding style reference and enforcement rules. Load when writing, reviewing, or modifying any Haskell code in the NeoHaskell project. Triggers on 'NeoHaskell style', 'NeoHaskell conventions', 'how to write NeoHaskell', '
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-security-review description: Security & Code Quality review for NeoHaskell. Use when reviewing code changes, PRs, or architectural decisions for security implications. Evaluates OWASP, NIST, EU compliance. Handles pipeline phases 2 (ADR review) and 10 (im
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-qa-designer description: Testing QA Designer for NeoHaskell. Designs comprehensive test specifications with exhaustive edge cases, boundary conditions, and happy paths BEFORE implementation. Handles pipeline phase 6 (Test Spec Design). Outside-in TDD meth
development
> **ARCHIVAL KNOWLEDGE — DO NOT USE OR REFERENCE.** > Superseded by `codemap/` + root `AGENTS.md`. Scheduled for deletion once the pipeline is verified (Phase 6). > Manifest: `docs/archive/2026-07-ai-artifacts/MANIFEST.md` --- name: neohaskell-performance-review description: Performance review for NeoHaskell targeting 50k req/s throughput. Use when reviewing code for performance implications, INLINE pragmas, strictness, and allocation patterns. Handles pipeline phases 3 (ADR review) and 11 (imp