AGENTS.md 2.3 KB

Repository Layout

  • Use clojure-mcp clojure_inspect_project to get project structure.
  • src/: Core source code
    • src/main/: The core logic of the application
    • src/main/mobile/: Mobile app code
    • src/main/frontend/inference_worker/: Code running in a webworker for text-embedding and vector-search
    • src/main/frontend/worker/: Code running in an another webworker
      • src/main/frontend/worker/rtc/: RTC(Real Time Collaboration) related code
    • src/main/frontend/components/: UI components
    • src/electron/: Code specifically for the Electron desktop application.
    • src/test/: unit-tests
  • deps/: Internal dependencies/modules
  • clj-e2e/: End to end test code

Common used cljs keywords

  • All commonly used ClojureScript keywords are defined using logseq.common.defkeywords/defkeyword.
  • Search for defkeywords to find all the definitions.

Testing Commands

  • Run linters and unit-tests: bb dev:lint-and-test
  • Run single focused unit-test:
    • Add the :focus keyword to the test case: (deftest ^:focus test-name ...)
    • bb dev:test -i focus

Code Guidance

Review Checklist

  • Linters and unit-tests must pass
  • Check the review notes listed in prompts/review.md.

IMPORTANT RULES

WARNING: The following are non-negotiable, highest-priority instructions. They MUST be followed unconditionally in all cases. Failure to comply with these rules will result in task failure.

  1. Clojure Code Editing Rules

    • Instruction: When editing any .clj, .cljs, or .cljc file, you MUST and ONLY use the clojure-mcp toolkit.
    • Prohibition: Absolutely do NOT use any general file writing tools (such as file_edit, file_write) to modify Clojure source files.
    • Reason: This is to ensure the integrity of the code structure, avoid syntax errors, and maintain the project's code style.
  2. Code Review/Modification Prerequisites

    • Instruction: Before EACH “review” or “modification” of the code, you MUST first execute the clojure_inspect_project tool.
    • Prohibition: Do NOT begin analyzing or modifying code directly without obtaining project-wide information.
    • Reason: This is to obtain complete, up-to-date project context, which is the foundation for making correct judgments and modifications.