Skip to content

Conversation

azu
Copy link
Member

@azu azu commented Jun 30, 2025

概要

Issue #8 で提案された、AIが生成しがちな機械的な「コロン(:)+ 箇条書き」パターンを検出し、より自然な日本語表現への改善を提案する機能を実装しました。

🎯 解決する問題

AIが生成する技術文書では、以下のような機械的なパターンが頻繁に見られます:

Before(機械的):

Vueのリアクティビティシステムは確かに便利ですが、その仕組みの見えにくさが気になります。例えば:

- `ref``reactive`の使い分けが最初は分からない。
- Proxy を使った内部実装により、時として予期しない動作をする。

After(自然):

Vueのリアクティビティシステムは確かに便利ですが、その仕組みの見えにくさが気になります。
たとえば、次のような点が見えにくいと感じます。

- `ref``reactive`の使い分けが最初は分からない。
- Proxy を使った内部実装により、時として予期しない動作をする。

🚀 実装内容

1. 新しい検出パターンの追加

  • ai-tech-writing-guidelineルールに構造化ガイダンス機能を拡張
  • Document レベルでParagraph → List の連続パターンを解析
  • 段落末尾がまたは:で終わり、直後にリストが続く場合を検出

2. 建設的なメッセージング

プロジェクトの方針に従い、中立的で提案的なメッセージを提供:

【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。

3. コードの品質向上(リファクタリング)

  • 既存の巨大な処理を関数に分割してモジュール化
  • detectColonListPattern(): コロン + 箇条書きパターンの検出
  • processDocumentStructureGuidance(): 文書レベルの構造化ガイダンス処理
  • processParagraphGuidance(): 段落内のガイダンスパターン検出
  • processDocumentAnalysis(): 文書全体の品質分析結果報告

4. 将来の拡張性向上

関数化により、今後の新機能追加が容易になりました:

// 将来的に追加予定の検出パターン
// detectExcessiveNestedLists(node);
// detectInconsistentHeadingStructure(node);
// detectPoorSectionOrganization(node);

🧪 テスト

追加されたテストケース

  • ✅ 自然な導入文を使った箇条書き(検出されない)
  • ✅ コロンのない箇条書き(検出されない)
  • ❌ 全角コロンで終わる段落 + 箇条書き(検出される)
  • ❌ 半角コロン:で終わる段落 + 箇条書き(検出される)

テスト結果

npm run test:unit -- --grep "ai-tech-writing-guideline"
# ✔ 16 passing (20ms)

npm run test:unit
# ✔ 97 passing (69ms)

すべてのテストが正常に通過しており、既存機能に影響はありません。

📝 技術的詳細

  • 対象ルール: ai-tech-writing-guideline
  • 検出レベル: Document(段落とリストの構造解析)
  • カテゴリ: 構造化ガイダンス
  • 無効化方法: disableStructureGuidance: trueオプション

🎉 期待される効果

  • AIが生成する技術文書の自然さ向上
  • 読み手により親しみやすい文章の促進
  • 機械的な印象の軽減
  • コードの保守性と拡張性の向上

🔗 関連

- ai-tech-writing-guideline ルールに新しい検出パターンを追加
- Document レベルでParagraph → List の連続パターンを解析
- 段落末尾がコロン(:、:)で終わり直後にリストが続く場合を検出
- 建設的で中立的なメッセージで自然な表現への改善を提案
- 既存の巨大な処理を関数に分割してモジュール化し保守性を向上
- テストケースを追加して機能の動作を保証

Closes #8
@azu azu merged commit e68dc7d into main Jun 30, 2025
4 checks passed
@azu azu deleted the feature/colon-list-pattern-detection branch June 30, 2025 00:37
@azu azu restored the feature/colon-list-pattern-detection branch June 30, 2025 00:40
@azu azu added the Type: Feature New Feature label Jun 30, 2025
@azu azu deleted the feature/colon-list-pattern-detection branch June 30, 2025 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: Feature New Feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

【機能追加】コロン(:)と箇条書きの機械的な組み合わせパターンの検出

1 participant