diff --git a/modbot.py b/modbot.py
index ca535f72efcc0ec1c6559c8a0299112333c7fae8..8ca74445885751ac621fc92cd9dcfb1ae784316a 100644
--- a/modbot.py
+++ b/modbot.py
@@ -208,13 +208,14 @@ Options:
 										users,
 										topic,
 										post,
-										simulate = simulate
+										simulate = simulate,
+										server = SERVER
 									)
 									print(result)
-									if "actions" in result:
+									if not simulate and "actions" in result:
 										for action in result["actions"]:
 											if action["action"] in switch_actions:
-												switch_actions[action["action"]](kwargs)
+												switch_actions[action["action"]](action["kwargs"])
 						
 						topic.post_seen_latest = post["id"]
 			
diff --git a/rules/std_clarity.py b/rules/std_clarity.py
index a4a91815ed4ed158ab9bd1a07ef67f1d52bff480..44096415135753ef903d67017fdd7f25e31c14e0 100644
--- a/rules/std_clarity.py
+++ b/rules/std_clarity.py
@@ -24,12 +24,26 @@ DESCRIPTION = "Checks for clarity in posts"
 AUTHORS = ["tuxmain <tuxmain@zettascript.org>"]
 SETTINGS = {
 	"post_chars_count_max": 10000,
-	"warnings": 3
+	"warnings": 3,
+	"moderate_staff": False
 }
 
+ITEMS = {
+	"too_long": """**Message trop long**&nbsp;: cela gêne la lecture du topic et le déroulement d'un débat. Veillez à laisser du temps aux autres pour répondre.""",
+	"no_paragraphs": """**Paragraphes trop longs**&nbsp;: un message structuré en petits paragraphes est plus lisible.""",
+	"no_punctuation": """**Peu de ponctuation**&nbsp;: utiliser plus de ponctuation rendrait vos phrases plus lisibles."""
+}
 MESSAGE_WARNING_TEXT = """Bonjour,
 
-Vous avez posté un message trop long."""
+Vous avez récemment posté [un message]({server}/t/{topic_id}/{post_id}) ne respectant pas certains critères aidant à entretenir une bonne communication sur ce forum&nbsp;:
+
+{items}
+
+L'équipe de modération vous prie de suivre ces règles, dans le cas contraire des mesures pourront être prises.
+
+Si vous pensez que cet avertissement est une erreur, veuillez nous en excuser. [Vous pouvez le signaler sur ce topic.](https://forum.monnaie-libre.fr/t/developpement-dun-plugin-discourse-pour-limiter-le-nombre-de-posts-par-jour-par-personne/7121) (c'est d'autant plus probable que ce robot de modération est en développement)
+
+Ce message est envoyé par un robot qui ne saura pas lire vos réponses."""
 MESSAGE_SANCTION_TEXT = """Bonjour,
 
 Vous avez encore posté un message trop long. C'était la fois de trop.
@@ -39,8 +53,18 @@ Que la foudre de la modération s'abatte sur votre clavier&#8239;!
 
 def target_new_post(users, topic, post,  **kwargs):
 	user = users[post["user_id"]]
+	if SETTINGS["moderate_staff"] and (user["admin"] or user["moderator"]):
+		return {}
+	
 	text = utils.clean_html(post["cooked"])
-	if len(text) > SETTINGS["post_chars_count_max"] and "message de test" in text:
+	infringed = []
+	
+	if len(text) > SETTINGS["post_chars_count_max"]:
+		infringed.append("too_long")
+	
+	print(text)
+	
+	if len(infringed) > 0:
 		user.warnings += 1
 		if user.warnings < SETTINGS["warnings"]:
 			return {
@@ -49,7 +73,12 @@ def target_new_post(users, topic, post,  **kwargs):
 						"action": "send_message",
 						"kwargs": {
 							"user": user,
-							"text": MESSAGE_WARNING_TEXT
+							"text": MESSAGE_WARNING_TEXT.format(
+								server=kwargs["server"],
+								topic_id=topic.id,
+								post_id=post["id"],
+								items="\n".join([" * {}".format(ITEMS[i]) for i in infringed])
+							)
 						}
 					}
 				]
diff --git a/utils.py b/utils.py
index aa18b42dba68e8bfb408a2a63af8aa6268598f8f..2d499dfcd8adc36bfae2c47c1878e90954365369 100644
--- a/utils.py
+++ b/utils.py
@@ -17,8 +17,6 @@
 	along with this program.  If not, see <https://www.gnu.org/licenses/>.
 """
 
-# THIS IS NOT A RULE FILE, but only a library used by rules!
-
 import re, html
 
 word_separators = [" ", ",", ".", ";", ":", "?", "!", "(", ")", "/", "+", "<", ">", "\t", "\n", "\r", "=", "…", "\u202f", '"', "\\"]
@@ -26,7 +24,10 @@ ngram_word_separator = " "
 
 clean_html_r = re.compile("<.*?>")
 
-def clean_html(text):
+def clean_html(text, remove_asides=True):
+	if remove_asides:
+		text = re.sub(re.compile("<aside(.+?)</aside>"), "", text)
+	
 	return html.unescape(re.sub(clean_html_r, '', text))
 
 def find_words(text):