ACE - Lint

Ruby-native linting for markdown, YAML, and Ruby with no Node.js or Python runtime required. ACE Logo

Gem Version Ruby License: MIT

Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.

Getting Started | Usage Guide | Handbook - Skills, Agents, Templates

ace-lint demo

ace-lint gives developers and coding agents a single Ruby-first lint command that validates docs and code, applies safe auto-fixes, and keeps behavior predictable through config cascade defaults. It covers markdown, YAML, Ruby, and frontmatter without requiring Node.js or Python tooling.

How It Works

  1. Run lint checks across markdown, YAML, Ruby, and frontmatter validators in one pass.
  2. Apply safe auto-fixes with --fix for markdown and Ruby style issues. For markdown-family files, --fix is surgical (line-level) and does not reserialize structure. Use --format when you explicitly want a guarded kramdown rewrite.
  3. Report results with colorized pass/fail output, using configuration cascade from CLI flags through project and user defaults.

Use Cases

Validate markdown, YAML, and Ruby in one pass - run ace-lint for doc and code lint checks without mixing Node/Python tooling into Ruby projects. Use /as-lint-run for the full agent-driven lint workflow.

Apply low-risk formatting fixes before review - use --fix to automatically clean markdown and Ruby style issues prior to manual review. For markdown, fixes are surgical to preserve frontmatter/code blocks/tables/HTML. Run /as-lint-fix-issue-from to fix specific issues identified in lint reports.

Standardize lint behavior across teams and repos - rely on user/project/default cascade settings from ace-support-config for consistent validator sets and output modes.

Process and act on lint reports - use /as-lint-process-report to analyze lint output and coordinate fixes, pairing with ace-docs for documentation maintenance workflows that complement lint validation.

For public verification paths around grouped validator routing, doctor troubleshooting, and retained test commands, see the Usage Guide, doctor troubleshooting, and test commands.

Testing Model

ace-lint follows the restarted testing contract:

  • ace-test ace-lint runs deterministic fast tests (test/fast).
  • ace-test ace-lint feat is reserved for explicit deterministic feature tests (test/feat) when present.
  • ace-test ace-lint all runs all deterministic package tests.
  • ace-test-e2e ace-lint runs retained workflow-value scenarios from test/e2e.

Getting Started | Usage Guide | Handbook - Skills, Agents, Templates | Part of ACE