From b827cbccea56d3ec21a7578a81189f6ac54c85c1 Mon Sep 17 00:00:00 2001 From: Furukawa Atsushi Date: Sat, 5 Jul 2025 02:56:54 +0900 Subject: [PATCH 1/2] feat: add option to disable colon + list format check - Add an option to disable the colon + list formatting rule to reduce overly strict warnings - Add tests for enabling/disabling the new option in ai-tech-writing-guideline.test.ts --- src/rules/ai-tech-writing-guideline.ts | 7 +++- test/rules/ai-tech-writing-guideline.test.ts | 40 ++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/rules/ai-tech-writing-guideline.ts b/src/rules/ai-tech-writing-guideline.ts index 428f623..36f3126 100644 --- a/src/rules/ai-tech-writing-guideline.ts +++ b/src/rules/ai-tech-writing-guideline.ts @@ -19,6 +19,8 @@ export interface Options { disableConsistencyGuidance?: boolean; disableClarityGuidance?: boolean; disableStructureGuidance?: boolean; + // Disable colon + list formatting checks (allows colon followed by bullet points) + "no-ai-colon-list-formatting"?: boolean; // Enable document-level analysis enableDocumentAnalysis?: boolean; } @@ -31,6 +33,7 @@ const rule: TextlintRuleModule = (context, options = {}) => { const disableConsistencyGuidance = options.disableConsistencyGuidance ?? false; const disableClarityGuidance = options.disableClarityGuidance ?? false; const disableStructureGuidance = options.disableStructureGuidance ?? false; + const noAiColonListFormatting = options["no-ai-colon-list-formatting"] ?? false; const enableDocumentAnalysis = options.enableDocumentAnalysis ?? true; // テクニカルライティングガイダンスパターン @@ -255,7 +258,9 @@ const rule: TextlintRuleModule = (context, options = {}) => { } // コロン + 箇条書きパターンの検出 - detectMechanicalListIntroPattern(node); + if (!noAiColonListFormatting) { + detectMechanicalListIntroPattern(node); + } // 将来的にここに他の文書レベルの構造化パターンを追加できます // 例: // detectExcessiveNestedLists(node); diff --git a/test/rules/ai-tech-writing-guideline.test.ts b/test/rules/ai-tech-writing-guideline.test.ts index b771a6d..02dee0d 100644 --- a/test/rules/ai-tech-writing-guideline.test.ts +++ b/test/rules/ai-tech-writing-guideline.test.ts @@ -39,6 +39,15 @@ tester.run("ai-tech-writing-guideline", rule, { { text: "パフォーマンス改善の手法を紹介します。以下にその手法を示します。\n\n- コード最適化\n- キャッシュ活用", options: { enableDocumentAnalysis: false } + }, + // no-ai-colon-list-formatting オプション true の場合(コロン+箇条書きを許可) + { + text: "フレームワークの特徴は以下の通りです:\n\n- 高速な処理\n- 簡単な設定", + options: { "no-ai-colon-list-formatting": true, enableDocumentAnalysis: false } + }, + { + text: "設定項目について説明します。例えば。\n\n- 基本設定\n- 詳細設定", + options: { "no-ai-colon-list-formatting": true, enableDocumentAnalysis: false } } ], invalid: [ @@ -200,6 +209,37 @@ tester.run("ai-tech-writing-guideline", rule, { "【簡潔性】冗長な助動詞表現が検出されました。「できます」または「します」への簡潔化を検討してください。" } ] + }, + // no-ai-colon-list-formatting オプション false の場合(デフォルト動作:エラーを検出) + { + text: "フレームワークの特徴は以下の通りです:\n\n- 高速な処理\n- 簡単な設定", + options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false }, + errors: [ + { + message: + "【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。" + } + ] + }, + { + text: "APIの使用方法について:\n\n- GET リクエスト\n- POST リクエスト", + options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false }, + errors: [ + { + message: + "【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。" + } + ] + }, + { + text: "設定項目について説明します。例えば。\n\n- 基本設定\n- 詳細設定", + options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false }, + errors: [ + { + message: + "【構造化】接続表現と句点で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような自然な導入文を検討してください。" + } + ] } ] }); From cc369dad71efeb44290e0a44da7989ca0c0e07af Mon Sep 17 00:00:00 2001 From: Furukawa Atsushi Date: Sat, 5 Jul 2025 03:59:29 +0900 Subject: [PATCH 2/2] fix: fix unit tests data --- test/rules/ai-tech-writing-guideline.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/rules/ai-tech-writing-guideline.test.ts b/test/rules/ai-tech-writing-guideline.test.ts index 02dee0d..e1a66f7 100644 --- a/test/rules/ai-tech-writing-guideline.test.ts +++ b/test/rules/ai-tech-writing-guideline.test.ts @@ -42,7 +42,7 @@ tester.run("ai-tech-writing-guideline", rule, { }, // no-ai-colon-list-formatting オプション true の場合(コロン+箇条書きを許可) { - text: "フレームワークの特徴は以下の通りです:\n\n- 高速な処理\n- 簡単な設定", + text: "フレームワークの特徴は以下の通りです:\n\n- 便利な機能\n- 簡単な設定", options: { "no-ai-colon-list-formatting": true, enableDocumentAnalysis: false } }, { @@ -212,7 +212,7 @@ tester.run("ai-tech-writing-guideline", rule, { }, // no-ai-colon-list-formatting オプション false の場合(デフォルト動作:エラーを検出) { - text: "フレームワークの特徴は以下の通りです:\n\n- 高速な処理\n- 簡単な設定", + text: "フレームワークの特徴は以下の通りです:\n\n- 便利な機能\n- 簡単な設定", options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false }, errors: [ {