Skip to content

Commit b827cbc

Browse files
committed
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
1 parent 4f87500 commit b827cbc

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

src/rules/ai-tech-writing-guideline.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ export interface Options {
1919
disableConsistencyGuidance?: boolean;
2020
disableClarityGuidance?: boolean;
2121
disableStructureGuidance?: boolean;
22+
// Disable colon + list formatting checks (allows colon followed by bullet points)
23+
"no-ai-colon-list-formatting"?: boolean;
2224
// Enable document-level analysis
2325
enableDocumentAnalysis?: boolean;
2426
}
@@ -31,6 +33,7 @@ const rule: TextlintRuleModule<Options> = (context, options = {}) => {
3133
const disableConsistencyGuidance = options.disableConsistencyGuidance ?? false;
3234
const disableClarityGuidance = options.disableClarityGuidance ?? false;
3335
const disableStructureGuidance = options.disableStructureGuidance ?? false;
36+
const noAiColonListFormatting = options["no-ai-colon-list-formatting"] ?? false;
3437
const enableDocumentAnalysis = options.enableDocumentAnalysis ?? true;
3538

3639
// テクニカルライティングガイダンスパターン
@@ -255,7 +258,9 @@ const rule: TextlintRuleModule<Options> = (context, options = {}) => {
255258
}
256259

257260
// コロン + 箇条書きパターンの検出
258-
detectMechanicalListIntroPattern(node);
261+
if (!noAiColonListFormatting) {
262+
detectMechanicalListIntroPattern(node);
263+
}
259264
// 将来的にここに他の文書レベルの構造化パターンを追加できます
260265
// 例:
261266
// detectExcessiveNestedLists(node);

test/rules/ai-tech-writing-guideline.test.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,15 @@ tester.run("ai-tech-writing-guideline", rule, {
3939
{
4040
text: "パフォーマンス改善の手法を紹介します。以下にその手法を示します。\n\n- コード最適化\n- キャッシュ活用",
4141
options: { enableDocumentAnalysis: false }
42+
},
43+
// no-ai-colon-list-formatting オプション true の場合(コロン+箇条書きを許可)
44+
{
45+
text: "フレームワークの特徴は以下の通りです:\n\n- 高速な処理\n- 簡単な設定",
46+
options: { "no-ai-colon-list-formatting": true, enableDocumentAnalysis: false }
47+
},
48+
{
49+
text: "設定項目について説明します。例えば。\n\n- 基本設定\n- 詳細設定",
50+
options: { "no-ai-colon-list-formatting": true, enableDocumentAnalysis: false }
4251
}
4352
],
4453
invalid: [
@@ -200,6 +209,37 @@ tester.run("ai-tech-writing-guideline", rule, {
200209
"【簡潔性】冗長な助動詞表現が検出されました。「できます」または「します」への簡潔化を検討してください。"
201210
}
202211
]
212+
},
213+
// no-ai-colon-list-formatting オプション false の場合(デフォルト動作:エラーを検出)
214+
{
215+
text: "フレームワークの特徴は以下の通りです:\n\n- 高速な処理\n- 簡単な設定",
216+
options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false },
217+
errors: [
218+
{
219+
message:
220+
"【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。"
221+
}
222+
]
223+
},
224+
{
225+
text: "APIの使用方法について:\n\n- GET リクエスト\n- POST リクエスト",
226+
options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false },
227+
errors: [
228+
{
229+
message:
230+
"【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。"
231+
}
232+
]
233+
},
234+
{
235+
text: "設定項目について説明します。例えば。\n\n- 基本設定\n- 詳細設定",
236+
options: { "no-ai-colon-list-formatting": false, enableDocumentAnalysis: false },
237+
errors: [
238+
{
239+
message:
240+
"【構造化】接続表現と句点で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような自然な導入文を検討してください。"
241+
}
242+
]
203243
}
204244
]
205245
});

0 commit comments

Comments
 (0)