Skip to content

LS-Lint Migration

Assura can convert an LS-Lint config into the supported structure-first .assura/config.yml format.

Example .ls-lint.yml:

ls:
.dir: kebab-case
.ts: kebab-case
ignore:
- node_modules
- dist
Terminal window
assura migrate .ls-lint.yml --output .assura/config.yml

The generated config excludes .assura/** so Assura does not validate the configuration directory it just created.

Terminal window
assura check

For automation:

Terminal window
assura check --format json .

The migration path targets LS-Lint 2.3 naming, regex, .dir, ignore, OR syntax, wildcard/subextension rules, glob and brace directory scopes, and exists behavior.

Native LS-Lint parity examples:

ls:
.dir: kebab-case
.md: exists:1-2
packages/*:
.ts: camelCase

Assura native direct-count examples:

ls:
README.md: exists:1
docs/: exists:1

These are useful for policies such as required package README.md files. During LS-Lint migration, exact scalar exists keys such as README.md: exists:1 and docs/: exists:1 become direct counts for default validation. Scalar naming keys such as src: kebab-case are validated and otherwise ignored to match upstream LS-Lint 2.3.

Multiple LS-Lint config files can be passed to assura migrate in the same order you would pass repeated LS-Lint --config flags.

Unsupported Or Explicitly Bounded Behavior

Section titled “Unsupported Or Explicitly Bounded Behavior”

assura migrate is intentionally a structure-policy migration, not a full LS-Lint runtime emulator.

Input shapeResult
Invalid YAMLmigrate exits nonzero and prints the parse error.
Empty ls: sectionAssura writes a config with exclusions but no structure rules.
Empty exists: valuemigrate exits nonzero with an invalid exists-rule error.
Empty regex: valuemigrate exits nonzero with an unsupported regex-rule error.
Exact README.md: exists:1 style keysMigrated as direct counts for default validation; explicit target-path behavior is covered separately.
Non-structure behavior such as editor hooks or auto-fixNot migrated; configure those workflows separately.

After conversion, use the same first-run commands as a new project:

Terminal window
assura status --format json
assura check --format json .