浏览代码

enhance: add `bb ai:check-common-errors`

Tienson Qin 2 月之前
父节点
当前提交
afe9db73a9
共有 3 个文件被更改,包括 22 次插入1 次删除
  1. 4 1
      bb.edn
  2. 3 0
      prompts/clojure_errors.md
  3. 15 0
      scripts/src/logseq/tasks/common_errors.clj

+ 4 - 1
bb.edn

@@ -207,7 +207,10 @@
   logseq.tasks.lang/validate-translations
 
   file-sync:integration-tests
-  logseq.tasks.file-sync/integration-tests}
+  logseq.tasks.file-sync/integration-tests
+
+  ai:check-common-errors
+  logseq.tasks.common-errors/check-common-errors}
 
  :tasks/config
  {:large-vars

+ 3 - 0
prompts/clojure_errors.md

@@ -0,0 +1,3 @@
+You're Clojure expert, you're responsible to check those common errors:
+
+1. `empty?` should be used instead of `empty` when a boolean value is expected in an expression.

+ 15 - 0
scripts/src/logseq/tasks/common_errors.clj

@@ -0,0 +1,15 @@
+(ns logseq.tasks.common-errors
+  "Task to use AI to detect common errors"
+  (:require [babashka.fs :as fs]
+            [babashka.process :refer [shell]]
+            [clojure.string :as string]))
+
+(defn check-common-errors
+  []
+  (let [prompt (String. (fs/read-all-bytes "prompts/clojure_errors.md"))
+        diff (:out (shell {:out :string} "git diff --no-prefix -U100 -- '*.cljs'"))]
+    (when-not (string/blank? diff)
+      (let [command (format "gh models run openai/gpt-5 \"%s\""
+                            (str prompt
+                                 (format "\n\n <diff>%s</diff>" diff)))]
+        (shell command)))))