Skip to content

Lint rules only load from .claude/lint-rules/, and init --tool cursor installs no Starlark rules at all #1242

Description

@kaspergff

Environment: mxcli nightly-20260929-e1ef0c9e (2026-09-29T08:19:41Z), Mendix 11.12.1, Windows 11.

Summary: mxcli lint is independent of any AI tool, but its Starlark rules and config only live under .claude/. Two consequences:

  1. mxcli init --tool cursor (other non-Claude tools not checked) installs no Starlark rules at all, so mxcli lint on such a project silently runs only the Go rules, without the 31 bundled .star rules. It does create .claude/lint-config.yaml and .claude/skills/.
  2. A team that does not use Claude Code (or keeps .claude/ out of git, or runs lint in CI) needs a .claude/ folder just for lint. Custom rules have no tool-neutral home.

Steps to reproduce

mkdir a b
mxcli init --tool claude a
mxcli init --tool cursor b
ls a/.claude/lint-rules | wc -l   # 31
ls b/.claude                      # lint-config.yaml  skills   (no lint-rules/)

Discovery (mdl/linter/lintrules_discovery.go, FindLintRulesDir) only looks for .claude/lint-rules/ from the project dir up to the repo root. There is no flag, env var or lint-config.yaml key to point it elsewhere.

Expected

  • Every init --tool <x> gives mxcli lint the same rule set.
  • A tool-neutral location for rules and config, for example one of:
    • a rules_dir (or list of dirs) key in lint-config.yaml;
    • a --rules-dir flag / MXCLI_LINT_RULES env var;
    • a neutral default such as lint/ or .mxlint/, with .claude/lint-rules/ kept as a fallback for existing projects.

A list of dirs would also let a company keep its own shared rules outside each project repo and combine them with the bundled ones.

Related: #904 (discovery fixes; closed).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions