diff --git a/pi/core/skills/bengali-nlp/SKILL.md b/pi/core/skills/bengali-nlp/SKILL.md index e5dabca16..5e077565c 100644 --- a/pi/core/skills/bengali-nlp/SKILL.md +++ b/pi/core/skills/bengali-nlp/SKILL.md @@ -186,13 +186,17 @@ BANGLA_STOP_WORDS = { "এবং", "ও", "এ", "এই", "সেই", "তার", "যে", "একটি", "করে", "হয়", "আর", "কিন্তু", "তবে", "যদি", "তাহলে", "আমি", "তুমি", "সে", "আমরা", "তোমরা", "তারা", - "হবে", "ছিল", "আছে", "নেই", "থেকে", "জন্য", "সাথে", + "হবে", "ছিল", "আছে", "থেকে", "জন্য", "সাথে", "পর", "আগে", "উপর", "নিচে", "মধ্যে", "দিয়ে", "কি", "কে", "কোন", "কোথায়", "কেন", "কিভাবে", - "না", "নয়", "হ্যাঁ", "অনেক", "কিছু", "সব", "প্রতি", + "হ্যাঁ", "অনেক", "কিছু", "সব", "প্রতি", } ``` +Keep negators such as `না`, `নয়`, and `নেই` out of a generic stop-word list. +They change intent and sentiment, so remove them only for a task that explicitly +models negation elsewhere. + ### Sorting and Collation Bengali has a defined sort order (স্বরবর্ণ before ব্যঞ্জনবর্ণ). Use locale-aware sorting: diff --git a/pi/core/skills/mybatis-patterns/SKILL.md b/pi/core/skills/mybatis-patterns/SKILL.md index c34922dba..582d05f71 100644 --- a/pi/core/skills/mybatis-patterns/SKILL.md +++ b/pi/core/skills/mybatis-patterns/SKILL.md @@ -200,15 +200,17 @@ public List search(UserSearchRequest request) { } ``` -The mapper retains the `ids.size() > 0` guard as defense in depth, but callers -must not rely on an empty `` to define query semantics. The service -boundary must ensure this query is reached only with a non-empty list or a -deliberate `null` meaning "no ID filter". +The mapper retains the `ids.size() > 0` guard as defense in depth. That guard +omits the entire ID predicate for an empty list, which broadens the query. The +service must short-circuit empty lists before calling the mapper, and any caller +that bypasses the service must reject empty IDs before query execution. Reserve +`null` for the deliberate "no ID filter" case. - Prefer ``, ``, ``, ``, and `` to manual string concatenation. -- Define the empty-list behavior in the service. Return no rows, skip the - query, or apply an explicit false predicate; never rely on `IN ()` behavior. +- Define the empty-list behavior in the service. Return no rows, skip the query, + or apply an explicit false predicate; never let an empty list silently remove + the ID predicate or rely on `IN ()` behavior. - Keep the allowed shape of dynamic SQL small. If a query has many branches, split it into named statements or move carefully selected alternatives into separate mapper methods. diff --git a/skills/bengali-nlp/SKILL.md b/skills/bengali-nlp/SKILL.md index e5dabca16..5e077565c 100644 --- a/skills/bengali-nlp/SKILL.md +++ b/skills/bengali-nlp/SKILL.md @@ -186,13 +186,17 @@ BANGLA_STOP_WORDS = { "এবং", "ও", "এ", "এই", "সেই", "তার", "যে", "একটি", "করে", "হয়", "আর", "কিন্তু", "তবে", "যদি", "তাহলে", "আমি", "তুমি", "সে", "আমরা", "তোমরা", "তারা", - "হবে", "ছিল", "আছে", "নেই", "থেকে", "জন্য", "সাথে", + "হবে", "ছিল", "আছে", "থেকে", "জন্য", "সাথে", "পর", "আগে", "উপর", "নিচে", "মধ্যে", "দিয়ে", "কি", "কে", "কোন", "কোথায়", "কেন", "কিভাবে", - "না", "নয়", "হ্যাঁ", "অনেক", "কিছু", "সব", "প্রতি", + "হ্যাঁ", "অনেক", "কিছু", "সব", "প্রতি", } ``` +Keep negators such as `না`, `নয়`, and `নেই` out of a generic stop-word list. +They change intent and sentiment, so remove them only for a task that explicitly +models negation elsewhere. + ### Sorting and Collation Bengali has a defined sort order (স্বরবর্ণ before ব্যঞ্জনবর্ণ). Use locale-aware sorting: diff --git a/skills/mybatis-patterns/SKILL.md b/skills/mybatis-patterns/SKILL.md index c34922dba..582d05f71 100644 --- a/skills/mybatis-patterns/SKILL.md +++ b/skills/mybatis-patterns/SKILL.md @@ -200,15 +200,17 @@ public List search(UserSearchRequest request) { } ``` -The mapper retains the `ids.size() > 0` guard as defense in depth, but callers -must not rely on an empty `` to define query semantics. The service -boundary must ensure this query is reached only with a non-empty list or a -deliberate `null` meaning "no ID filter". +The mapper retains the `ids.size() > 0` guard as defense in depth. That guard +omits the entire ID predicate for an empty list, which broadens the query. The +service must short-circuit empty lists before calling the mapper, and any caller +that bypasses the service must reject empty IDs before query execution. Reserve +`null` for the deliberate "no ID filter" case. - Prefer ``, ``, ``, ``, and `` to manual string concatenation. -- Define the empty-list behavior in the service. Return no rows, skip the - query, or apply an explicit false predicate; never rely on `IN ()` behavior. +- Define the empty-list behavior in the service. Return no rows, skip the query, + or apply an explicit false predicate; never let an empty list silently remove + the ID predicate or rely on `IN ()` behavior. - Keep the allowed shape of dynamic SQL small. If a query has many branches, split it into named statements or move carefully selected alternatives into separate mapper methods.