u/AsleepSurround6814

Image 1 — I made elisp-quality-ai: AI-friendly quality reports for Emacs Lisp projects
Image 2 — I made elisp-quality-ai: AI-friendly quality reports for Emacs Lisp projects
▲ 0 r/emacs

I made elisp-quality-ai: AI-friendly quality reports for Emacs Lisp projects

Hi r/emacs,

I’ve been working on elisp-quality-ai, a small Emacs Lisp package that provides a single entry point for generating AI-friendly quality reports for Emacs Lisp projects.

The motivation was that Emacs Lisp already has useful quality tools, but they are spread across different packages and interfaces: checkdoc, byte compilation, package-lint, relint, complexity tools, Elsa, etc. When using these from CI or from AI coding agents, I wanted a consistent CLI and stable JSON/JSONL/Markdown output instead of having each workflow assemble custom Emacs Lisp snippets.

The built-in collectors work out of the box with Emacs:

  • checkdoc: documentation and style checks
  • byte compilation: compiler warnings and errors

Optional collectors are used automatically when available:

  • package-lint: package metadata, headers, autoloads, MELPA-style packaging checks
  • relint: suspicious or mechanically improvable regular expressions
  • cognitive-complexity: maintainability signals for complex definitions
  • Elsa: deeper static analysis around symbols, values, and type-like flow

It also generates ranked AI-oriented tasks from the collected diagnostics, so an agent can ask for the next useful maintenance task instead of parsing raw tool output.

Example CLI usage:

bin/elisp-quality-ai report --root . --format markdown
bin/elisp-quality-ai tasks --root . --format json --limit 5
bin/elisp-quality-ai next-task --root . --format json

If the optional tools are installed through package.el, the bundled CLI initializes package.el and can use them directly. For straight.el, elpaca, or other package managers, you can pass their build directories with repeated --load-path arguments, or load a setup file with --load.

The goal is not to replace the existing tools, but to normalize their output into one report that is useful for maintainers, CI, and AI-assisted maintenance.

It requires Emacs 29.1+.

I’d appreciate feedback on the report schema, collector model, and whether the generated tasks match real Emacs Lisp maintenance workflows.

GitHub: https://github.com/kn66/elisp-quality-ai

u/AsleepSurround6814 — 4 days ago
▲ 49 r/emacs

Hi r/emacs,

A few days ago I posted vertico-posframe-preview, a small package which adds a preview sidecar to vertico-posframe:

https://www.reddit.com/r/emacs/comments/1t0vmko/verticoposframepreview_a_preview_sidecar_for/

After that, I learned that a normal buffer can be displayed directly in a child frame. Since vertico-buffer-mode is one of Vertico's built-in extension modes, I wanted to try a lighter approach: use vertico-buffer itself, and make Emacs display that buffer in a child frame.

So I made a follow-up experiment called vertico-buffer-frame.

It shows vertico-buffer-mode in an Emacs child frame using the built-in display-buffer-in-child-frame, without depending on posframe or vertico-posframe. It can also show an optional preview child frame for the current candidate.

Main differences from vertico-posframe-preview:

  • depends only on Emacs and Vertico
  • uses Vertico's built-in vertico-buffer-mode instead of vertico-posframe
  • uses Emacs' built-in child frame display action
  • keeps the minibuffer prompt width intact by overlaying the preview on the lower-right side of the candidate frame
  • also supports a side-by-side preview layout
  • includes previews for files, directories, buffers, bookmarks, commands, functions, variables, faces, packages, Consult locations, grep results, imenu, org headings, xref, etc.

Basic setup:

(require 'vertico-buffer-frame)
(vertico-buffer-frame-mode 1)

To toggle the preview during completion:

(with-eval-after-load 'vertico
  (define-key vertico-map (kbd "C-t")
              #'vertico-buffer-frame-toggle-preview))

This is still experimental. The package no longer depends on posframe or vertico-posframe internals, but it still hooks into some Vertico internals in order to update the preview while candidates change. So I would especially appreciate feedback from people using different window managers, themes, frame setups, or Emacs versions.

Repository: https://github.com/kn66/vertico-buffer-frame

Feedback, bug reports, and suggestions are welcome.

u/AsleepSurround6814 — 9 days ago
▲ 95 r/emacs

Hi r/emacs,

I made a small package called vertico-posframe-preview.

It adds a second posframe next to vertico-posframe and shows preview content for the currently selected Vertico candidate. The goal is to make completion workflows feel closer to “select on the left, preview on the right” without leaving the minibuffer.

It currently supports previews for common candidates such as:

  • files and directories
  • buffers
  • bookmarks
  • locations, grep results, imenu, and xref candidates
  • Consult previews, when Consult is loaded

Basic setup:

(require 'vertico-posframe-preview)

(vertico-mode 1)
(vertico-posframe-mode 1)
(vertico-posframe-preview-mode 1)

You can also toggle the preview during a Vertico session:

(keymap-set vertico-map "C-t" #'vertico-posframe-preview-toggle)

Repository:

https://github.com/kn66/vertico-posframe-preview

A note: this package currently advises some internal APIs from vertico-posframe and Consult, so it may need updates if those internals change. The tested baseline is listed in the package header / README.

Feedback, bug reports, and suggestions are welcome.

u/AsleepSurround6814 — 13 days ago