smithery.ai

cl-mallet-linter

malletリンターのルールと設定を適用。コードレビュー・品質チェック時に使用

First seen Mar 28, 2026

Installation

$ npx skills add https://smithery.ai

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Grep, Glob, Bash

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,735 B
  • docs SUMMARY.md 129 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Mallet Linter Guide

Malletは、スタイルの強制ではなく実際の間違いを捉えることに特化したCommon Lispリンターです。

基本コマンド

# ファイル/ディレクトリをリント
mallet src/

# 全ルール有効化
mallet -a src/
mallet --all src/

# 自動修正(ドライラン)
mallet --fix-dry-run src/

# 自動修正実行
mallet --fix src/

# 出力形式指定
mallet --format json src/
mallet --format line src/   # GCC形式

重大度レベル

レベル 説明 例
error 確実に間違い wrong-otherwise
warning バグの可能性 unused-variables, missing-otherwise
convention イディオム推奨 if-without-else, special-variable-naming
format フォーマット trailing-whitespace, no-tabs
info スタイル選択 line-length, constant-naming
metrics 品質測定 cyclomatic-complexity, function-length

主要ルール

Error(エラー)

ルール 説明
wrong-otherwise ecase/etypecaseでotherwise/tを使用

Warning(警告)

ルール 説明
unused-variables 未使用変数
unused-local-functions 未使用ローカル関数
missing-otherwise case/typecaseにotherwise句がない
mixed-optional-and-key &optionalと&keyの混在

Convention(慣例)

ルール 説明
if-without-else else節なしのif → when/unless推奨
bare-progn-in-if ifでprogn → cond推奨
interned-package-symbol パッケージで#:形式推奨
special-variable-naming 特殊変数はname形式
asdf-component-strings ASDFコンポーネントに文字列使用

Format(フォーマット)

ルール 説明
no-tabs タブ禁止
trailing-whitespace 行末空白
final-newline ファイル末尾改行

Info(情報)

ルール 説明 デフォルト
line-length 最大行長 100
consecutive-blank-lines 連続空行 2
unused-local-nicknames 未使用ニックネーム -
unused-imported-symbols 未使用インポート -
constant-naming 定数は+name+形式 -
needless-let* 不要なlet* -

Metrics(メトリクス)

ルール 説明 デフォルト
cyclomatic-complexity 循環複雑度 20
function-length 関数行数 50

設定ファイル (.mallet.lisp)

(:mallet-config
 ;; ベース設定
 (:extends :default)  ; :default, :all, :none

 ;; 無視パス
 (:ignore "vendor/**/*.lisp"
          "**/generated/*.lisp"
          "examples/**/*.lisp")

 ;; ルール有効化(オプション付き)
 (:enable :line-length :max 100)
 (:enable :cyclomatic-complexity :max 15)
 (:enable :function-length :max 40)
 (:enable :consecutive-blank-lines :max 2)
 (:enable :constant-naming)

 ;; ルール無効化
 (:disable :if-without-else)

 ;; パス固有設定
 (:for-paths ("tests")
   (:enable :line-length :max 120)
   (:disable :unused-variables))

 (:for-paths ("scripts" "examples")
   (:disable :line-length)
   (:disable :trailing-whitespace)))

CLIオプション

# プリセット
--preset default    # 推奨ルールのみ
--preset all        # 全ルール
--preset none       # ルールなし

# ルール制御
--enable rule-name
--enable rule-name:opt=value
--disable rule-name
--enable-group metrics
--disable-group info

# 出力
--format text       # デフォルト
--format line       # GCC形式(エディタ統合用)
--format json       # プログラム処理用

# 修正
--fix               # 自動修正
--fix-dry-run       # 修正プレビュー

# その他
--config path       # 設定ファイル指定
--debug             # デバッグモード

自動修正可能なルール

以下のルールは --fix で自動修正可能:

  • trailing-whitespace - 行末空白を削除
  • final-newline - ファイル末尾に改行追加
  • consecutive-blank-lines - 過度な空行を削除
  • unused-local-nicknames - 未使用ニックネームを削除
  • unused-imported-symbols - 未使用インポートを削除

ソースコード内での抑制

;; 次のフォームを抑制
#+mallet
(declaim (mallet:suppress-next :if-without-else))
(defun foo () (if x (print "yes")))

;; 領域を抑制
#+mallet
(declaim (mallet:disable :line-length))
;; ... 長い行のコード ...
#+mallet
(declaim (mallet:enable :line-length))

;; スコープ内で抑制
(defun foo ()
  #+mallet
  (declare (mallet:suppress :unused-variables))
  (let ((unused 1))
    (do-something)))

;; 全ルール抑制
#+mallet
(declaim (mallet:suppress-next :all))
(defun generated-code () ...)

終了コード

コード 意味
0 問題なし
1 警告あり
2 エラーあり
3 実行エラー

推奨ワークフロー

開発中

# デフォルトルールでチェック
mallet src/

# 問題を確認して修正
mallet --fix-dry-run src/
mallet --fix src/

PR前

# 全ルールでチェック
mallet -a src/

# メトリクス確認
mallet --enable-group metrics src/

CI/CD

# 厳格チェック(エラーで失敗)
mallet --format line src/ && echo "Lint passed"