はじめに#
ブログを始めて数記事書いたところで、文章の品質にばらつきがあることに気づきました。特に、文体の統一や日本語の表記ゆれなど、細かい部分で一貫性がなかったのです。
そこで、textlintを導入して文章品質をチェックする仕組みを作り、さらにClaude Codeと連携させることで、記事作成時間を短縮しつつ品質を維持できる環境を構築しました。
textlintとは#
textlintは、日本語や英語の文章をチェックするためのツールです。ESLintのようにルールベースで動作し、文章の問題点を自動的に検出してくれます。
主な特徴:
- 文体の統一(です・ます調、である調)
- 表記ゆれの検出
- 冗長表現の指摘
- 文の長さチェック
- カスタムルールの追加が可能
導入手順#
1. 必要なパッケージのインストール#
npm init -y
npm install --save-dev textlint
npm install --save-dev textlint-rule-preset-ja-technical-writing
npm install --save-dev textlint-rule-no-double-negative-ja
npm install --save-dev textlint-rule-no-dropping-the-ra
npm install --save-dev textlint-rule-preset-ja-spacing
npm install --save-dev textlint-rule-ja-no-redundant-expression
npm install --save-dev textlint-rule-no-doubled-joshi
2. textlint設定ファイルの作成#
.textlintrc.json
を作成し、以下の設定を記述します。
{
"rules": {
"preset-ja-technical-writing": {
"sentence-length": {
"max": 150
},
"max-comma": {
"max": 5
},
"max-ten": {
"max": 5
},
"no-exclamation-question-mark": false,
"ja-no-weak-phrase": false,
"ja-no-mixed-period": true,
"no-doubled-conjunction": true,
"no-doubled-conjunctive-particle-ga": true,
"arabic-kanji-numbers": false
},
"ja-no-redundant-expression": true,
"no-dropping-the-ra": true,
"no-double-negative-ja": true,
"no-doubled-joshi": {
"strict": false,
"allow": []
},
"preset-ja-spacing": {
"ja-space-between-half-and-full-width": {
"space": "never"
},
"ja-space-around-code": false
}
}
}
3. npmスクリプトの設定#
package.json
に以下のスクリプトを追加します。
{
"scripts": {
"textlint": "textlint 'content/**/*.md'",
"textlint:fix": "textlint --fix 'content/**/*.md'"
}
}
4. Huskyによる自動チェックの設定#
コミット前に自動的にtextlintを実行するように、Huskyを設定します。
npm install --save-dev husky lint-staged
npm run prepare
npx husky add .husky/pre-commit "npx lint-staged"
package.json
にlint-stagedの設定を追加:
{
"lint-staged": {
"content/**/*.md": [
"textlint"
]
}
}
Claude Codeとの連携#
CLAUDE.mdファイルの作成#
プロジェクトルートにCLAUDE.md
を作成し、Claude Codeへの指示を記述します。
主な内容:
- 文章作成ルールの明記
- textlintルールの説明
- カテゴリ・タグの運用ルール
- ファイル構造の説明
実際の効果#
textlintを導入した結果、以下のような改善がありました。
文体の統一
- 「です・ます調」で統一されるようになった
- 「できる」のような冗長表現が削除された
タグの整理
- 既存記事のタグを整理し、ルールに従った運用へ変更
["Hugo", "ブログ", "静的サイトジェネレータ"]
→["Hugo"]
表記の統一
- slugを日本語タイトルに統一
- 文末の句読点を適切に修正
運用のポイント#
1. カテゴリとタグの管理#
docs/カテゴリとタグについて.md
でカテゴリとタグを管理することで、一貫性のある分類を実現しています。
現在のカテゴリ:
- 日記
- 技術
現在のタグ:
- 自己紹介
- Hugo
2. コミット時の自動チェック#
Huskyのpre-commitフックで、コミット時に自動的にtextlintが実行されます。これにより、品質の低い文章がリポジトリに入ることを防げます。
3. Claude Codeでの記事作成#
Claude Codeに記事作成を依頼する際も、CLAUDE.mdに記載されたルールに従って作成されるため、最初から品質の高い文章が生成されます。
まとめ#
textlintとClaude Codeを組み合わせることで、以下のメリットがありました。
- 文章品質の向上と一貫性の確保
- 執筆時の細かいルールを意識する負担の軽減
- レビュー工数の削減
- Claude Codeによる記事作成時間の大幅な短縮
特に個人ブログでは、こうした自動化の仕組みが大きな助けになります。今後も継続的に改善を加えながら、より良いブログ運営を目指していきたいと思います。