Skip to content

docs(roadmap): note luacheck has no enforcement anywhere - #132

Merged
FullGas1 merged 1 commit into
developfrom
docs/roadmap-luacheck-gap
Aug 26, 2026
Merged

docs(roadmap): note luacheck has no enforcement anywhere#132
FullGas1 merged 1 commit into
developfrom
docs/roadmap-luacheck-gap

Conversation

@FullGas1

@FullGas1 FullGas1 commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Logs a roadmap idea found while verifying develop post-merge (PR #129): CLAUDE.md claims luacheck is enforced via CI when not installed locally, but grepping .github/workflows/ shows zero jobs actually run it, and the local luacheck-on-edit.sh PostToolUse hook no-ops silently when the binary is missing. No code has been checked by real luacheck for an unknown amount of time. No functional change, label skip-changelog.

Summary by Sourcery

Document the missing luacheck quality gate and track its restoration as a future roadmap effort.

Enhancements:

  • Document the absence of effective luacheck enforcement in local development and CI, and record options for adding visible or blocking lint validation.

Documentation:

  • Add a roadmap item noting that luacheck is not currently run by CI or reliably by the local edit hook, and outlining potential remediation approaches.

…silent local no-op)

Found while verifying develop post-merge: CLAUDE.md claims CI relies on
it, but no workflow runs luacheck and the edit-time hook no-ops
silently when the binary is absent.
@FullGas1 FullGas1 added the skip-changelog PR touches src/ but intentionally needs no CHANGELOG entry (waives changelog-guard) label Aug 26, 2026
@FullGas1
FullGas1 requested a review from davidp57 as a code owner August 26, 2026 00:23
@FullGas1 FullGas1 added the skip-changelog PR touches src/ but intentionally needs no CHANGELOG entry (waives changelog-guard) label Aug 26, 2026
@sourcery-ai

sourcery-ai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Reviewer's Guide

Adds a roadmap entry documenting the gap between the stated luacheck quality guarantee and its actual absence from CI and local enforcement, and outlines possible remediation and rollout options.

File-Level Changes

Change Details Files
Documents a roadmap item identifying that luacheck is currently not enforced locally or in CI.
  • Records that CI contains no luacheck job and that the existing Lua check only validates syntax with luac5.1.
  • Explains that the local PostToolUse hook silently skips checks when luacheck is unavailable.
  • Proposes adding a CI job, making the local hook visible or blocking, or both, with a decision on gating versus report-only rollout deferred.
dev/roadmap.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="dev/roadmap.md" line_range="203-216" />
<code_context>
+## luacheck n'est en réalité vérifié nulle part (ni local, ni CI)
</code_context>
<issue_to_address>
**nitpick:** The heading and conclusion state that luacheck is verified nowhere, but the local hook does run luacheck whenever the executable is installed; the documented problem is missing CI enforcement and a silent local no-op on machines without the binary, not universal absence of local checking.

**Triggers:** When a developer or future implementer reads this roadmap item outside the Windows environment described.

**Suggested fix:** Narrow the wording to say that effective enforcement is absent in CI and unavailable on this machine, while the local hook remains best-effort when luacheck is installed.

```suggestion
## luacheck n'est effectivement imposé ni en CI, ni sur cette machine

Constaté en vérifiant l'état de `develop` après le merge de `FEAT-TROOP-ZONE-SCRIPTED-API` (PR
#129, 2026-08-26) : `CLAUDE.md` affirme "`luacheck --config .luacheckrc src/` must be clean (rely
on CI if not installed locally)", mais **aucun job CI n'exécute luacheck** (grep confirmé sur
`.github/workflows/` — zéro occurrence). Le job `Lua 5.1 Syntax Check` ne fait qu'un `luac5.1 -p`
(compilation/syntaxe), pas d'analyse statique (variables inutilisées, globals implicites, etc.).

Côté local, le hook `tools/hooks/luacheck-on-edit.sh` (PostToolUse sur Edit/Write d'un fichier
`src/*.lua`) exécute luacheck lorsqu'il est installé, mais devient un **no-op silencieux** quand
`luacheck` n'est pas installé (`command -v luacheck` échoue) — le cas sur cette machine Windows
(absent du PATH et de `luarocks/rocks/bin`). Résultat : le code fusionné dans cette même PR
(`src/CTLD_zone.lua`) n'a jamais été passé au luacheck réel sur cette machine (hook muet), ni en CI
(job absent) — la garantie de qualité annoncée dans `CLAUDE.md` n'est effectivement assurée ni en
CI, ni sur cette machine.
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread dev/roadmap.md
Comment on lines +203 to +216
## luacheck n'est en réalité vérifié nulle part (ni local, ni CI)

Constaté en vérifiant l'état de `develop` après le merge de `FEAT-TROOP-ZONE-SCRIPTED-API` (PR
#129, 2026-08-26) : `CLAUDE.md` affirme "`luacheck --config .luacheckrc src/` must be clean (rely
on CI if not installed locally)", mais **aucun job CI n'exécute luacheck** (grep confirmé sur
`.github/workflows/` — zéro occurrence). Le job `Lua 5.1 Syntax Check` ne fait qu'un `luac5.1 -p`
(compilation/syntaxe), pas d'analyse statique (variables inutilisées, globals implicites, etc.).

Côté local, le hook `tools/hooks/luacheck-on-edit.sh` (PostToolUse sur Edit/Write d'un fichier
`src/*.lua`) est un **no-op silencieux** quand `luacheck` n'est pas installé (`command -v
luacheck` échoue) — le cas sur cette machine Windows (absent du PATH et de
`luarocks/rocks/bin`). Résultat : le code fusionné dans cette même PR (`src/CTLD_zone.lua`) n'a
jamais été passé au luacheck réel, ni pendant la session (hook muet), ni en CI (job absent) — la
garantie de qualité annoncée dans `CLAUDE.md` est un filet vide depuis on ne sait combien de temps.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: The heading and conclusion state that luacheck is verified nowhere, but the local hook does run luacheck whenever the executable is installed; the documented problem is missing CI enforcement and a silent local no-op on machines without the binary, not universal absence of local checking.

Triggers: When a developer or future implementer reads this roadmap item outside the Windows environment described.

Suggested fix: Narrow the wording to say that effective enforcement is absent in CI and unavailable on this machine, while the local hook remains best-effort when luacheck is installed.

Suggested change
## luacheck n'est en réalité vérifié nulle part (ni local, ni CI)
Constaté en vérifiant l'état de `develop` après le merge de `FEAT-TROOP-ZONE-SCRIPTED-API` (PR
#129, 2026-08-26) : `CLAUDE.md` affirme "`luacheck --config .luacheckrc src/` must be clean (rely
on CI if not installed locally)", mais **aucun job CI n'exécute luacheck** (grep confirmé sur
`.github/workflows/` — zéro occurrence). Le job `Lua 5.1 Syntax Check` ne fait qu'un `luac5.1 -p`
(compilation/syntaxe), pas d'analyse statique (variables inutilisées, globals implicites, etc.).
Côté local, le hook `tools/hooks/luacheck-on-edit.sh` (PostToolUse sur Edit/Write d'un fichier
`src/*.lua`) est un **no-op silencieux** quand `luacheck` n'est pas installé (`command -v
luacheck` échoue) — le cas sur cette machine Windows (absent du PATH et de
`luarocks/rocks/bin`). Résultat : le code fusionné dans cette même PR (`src/CTLD_zone.lua`) n'a
jamais été passé au luacheck réel, ni pendant la session (hook muet), ni en CI (job absent) — la
garantie de qualité annoncée dans `CLAUDE.md` est un filet vide depuis on ne sait combien de temps.
## luacheck n'est effectivement imposé ni en CI, ni sur cette machine
Constaté en vérifiant l'état de `develop` après le merge de `FEAT-TROOP-ZONE-SCRIPTED-API` (PR
#129, 2026-08-26) : `CLAUDE.md` affirme "`luacheck --config .luacheckrc src/` must be clean (rely
on CI if not installed locally)", mais **aucun job CI n'exécute luacheck** (grep confirmé sur
`.github/workflows/` — zéro occurrence). Le job `Lua 5.1 Syntax Check` ne fait qu'un `luac5.1 -p`
(compilation/syntaxe), pas d'analyse statique (variables inutilisées, globals implicites, etc.).
Côté local, le hook `tools/hooks/luacheck-on-edit.sh` (PostToolUse sur Edit/Write d'un fichier
`src/*.lua`) exécute luacheck lorsqu'il est installé, mais devient un **no-op silencieux** quand
`luacheck` n'est pas installé (`command -v luacheck` échoue) — le cas sur cette machine Windows
(absent du PATH et de `luarocks/rocks/bin`). Résultat : le code fusionné dans cette même PR
(`src/CTLD_zone.lua`) n'a jamais été passé au luacheck réel sur cette machine (hook muet), ni en CI
(job absent) — la garantie de qualité annoncée dans `CLAUDE.md` n'est effectivement assurée ni en
CI, ni sur cette machine.

@FullGas1
FullGas1 merged commit 2c8a44e into develop Aug 26, 2026
8 checks passed
@FullGas1
FullGas1 deleted the docs/roadmap-luacheck-gap branch August 26, 2026 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog PR touches src/ but intentionally needs no CHANGELOG entry (waives changelog-guard)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant